prisma-client-api
prisma/skills
Prisma Client API reference covering model queries, filters, operators, and client methods. Use when writing database queries, using CRUD operations, filtering data, or configuring Prisma Client. Triggers on "prisma query", "findMany", "create", "update", "delete", "$transaction".
...Expand allAbout prisma-client-api
The prisma-client-api skill provides a comprehensive reference for interacting with databases using Prisma Client. It streamlines the process of constructing queries, performing CRUD operations, applying filters, managing relations, and handling transactions within Prisma projects. By offering detailed guidance on client instantiation, model queries, query options, and raw SQL execution, this skill helps developers reduce errors and improve efficiency when working with relational databases. It is particularly useful for ensuring that queries are structured correctly and that advanced operations like nested writes and transactions are handled safely and effectively.
This skill covers a wide range of capabilities including model query methods such as findUnique, findMany, create, update, delete, upsert, and aggregation functions like count, aggregate, and groupBy. It also provides extensive support for query options, allowing developers to filter, select, include, omit, sort, paginate, and enforce distinct values. Prisma Client methods for lifecycle management, event subscriptions, raw SQL execution, and client extensions are also included. The skill ensures safe execution of raw SQL queries and provides guidance on using transactions, both array-based and interactive, to maintain data integrity.
Target users include backend developers, database administrators, and full-stack engineers working with JavaScript or TypeScript who need to efficiently interact with databases via Prisma. Typical use cases involve building web applications, APIs, and microservices where precise data retrieval, manipulation, and aggregation are critical. It is also suitable for teams that require a standard reference for consistent query patterns and best practices when implementing complex relational logic or performing batch operations in production environments.
FAQ
How do I instantiate a Prisma Client with a custom adapter?
You can instantiate Prisma Client by importing PrismaClient and your adapter, then passing the adapter configuration to the client constructor, as shown in the provided TypeScript example.
Which database operations are supported by Prisma Client?
Prisma Client supports full CRUD operations including findUnique, findMany, create, createMany, update, updateMany, upsert, delete, and deleteMany. It also supports aggregation and grouping methods.
Can Prisma Client handle transactions?
Yes, Prisma Client supports both array-based and interactive transactions using the $transaction method, allowing multiple queries to be executed safely within a single transaction.
Is raw SQL supported and safe to use?
Prisma Client provides $queryRaw and $executeRaw methods for executing raw SQL queries. These should be used carefully to avoid SQL injection, and the documentation provides guidance for safe usage.
What are the requirements to use this Prisma Client API skill?
You need a Prisma project with a generated client, a supported database, and an appropriate adapter. TypeScript or JavaScript environments are required for client instantiation and query execution.
Prisma Client API Reference
Complete API reference for Prisma Client. This skill provides guidance on model queries, filtering, relations, and client methods for current Prisma projects.
When to Apply
Reference this skill when:
- Writing database queries with Prisma Client
- Performing CRUD operations (create, read, update, delete)
- Filtering and sorting data
- Working with relations
- Using transactions
- Configuring client options
Rule Categories by Priority
| Priority | Category | Impact | Prefix |
|---|---|---|---|
| 1 | Client Construction | HIGH | constructor |
| 2 | Model Queries | CRITICAL | model-queries |
| 3 | Query Shape | HIGH | query-options |
| 4 | Filtering | HIGH | filters |
| 5 | Relations | HIGH | relations |
| 6 | Transactions | CRITICAL | transactions |
| 7 | Raw SQL | CRITICAL | raw-queries |
| 8 | Client Methods | MEDIUM | client-methods |
Quick Reference
constructor-PrismaClientsetup, adapter wiring, logging, and SQL commenter pluginsmodel-queries- CRUD operations and bulk operationsquery-options-select,include,omit, sort, paginationfilters- scalar and logical filter operatorsrelations- relation reads and nested writestransactions- array and interactive transaction patternsraw-queries-$queryRawand$executeRawsafetyclient-methods- lifecycle methods, extensions, andsatisfiespatterns forprisma-client
Client Instantiation
import { PrismaClient } from '../generated/client'import { PrismaPg } from '@prisma/adapter-pg'const adapter = new PrismaPg({ connectionString: process.env.DATABASE_URL})const prisma = new PrismaClient({ adapter })
Model Query Methods
| Method | Description |
|---|---|
findUnique() | Find one record by unique field |
findUniqueOrThrow() | Find one or throw error |
findFirst() | Find first matching record |
findFirstOrThrow() | Find first or throw error |
findMany() | Find multiple records |
create() | Create a new record |
createMany() | Create multiple records |
createManyAndReturn() | Create multiple and return them |
update() | Update one record |
updateMany() | Update multiple records |
updateManyAndReturn() | Update multiple and return them |
upsert() | Update or create record |
delete() | Delete one record |
deleteMany() | Delete multiple records |
count() | Count matching records |
aggregate() | Aggregate values (sum, avg, etc.) |
groupBy() | Group and aggregate |
Query Options
| Option | Description |
|---|---|
where | Filter conditions |
select | Fields to include |
include | Relations to load |
omit | Fields to exclude |
orderBy | Sort order |
take | Limit results |
skip | Skip results (pagination) |
cursor | Cursor-based pagination |
distinct | Unique values only |
Client Methods
| Method | Description |
|---|---|
$connect() | Explicitly connect to database |
$disconnect() | Disconnect from database |
$transaction() | Execute transaction |
$queryRaw() | Execute raw SQL query |
$executeRaw() | Execute raw SQL command |
$on() | Subscribe to events |
$extends() | Add extensions |
Quick Examples
Find records
// Find by unique fieldconst user = await prisma.user.findUnique({ where: { email: '[email protected]' }})// Find with filterconst users = await prisma.user.findMany({ where: { role: 'ADMIN' }, orderBy: { createdAt: 'desc' }, take: 10})
Create records
const user = await prisma.user.create({ data: { email: '[email protected]', name: 'Alice', posts: { create: { title: 'Hello World' } } }, include: { posts: true }})
Update records
const user = await prisma.user.update({ where: { id: 1 }, data: { name: 'Alice Smith' }})
Delete records
await prisma.user.delete({ where: { id: 1 }})
Transactions
const [user, post] = await prisma.$transaction([ prisma.user.create({ data: { email: '[email protected]' } }), prisma.post.create({ data: { title: 'Hello', authorId: 1 } })])
Rule Files
Detailed API documentation:
references/constructor.md - PrismaClient constructor optionsreferences/model-queries.md - CRUD operationsreferences/query-options.md - select, include, omit, where, orderByreferences/filters.md - Filter conditions and operatorsreferences/relations.md - Relation queries and nested operationsreferences/transactions.md - Transaction APIreferences/raw-queries.md - $queryRaw, $executeRawreferences/client-methods.md - $connect, $disconnect, $on, $extendsFilter Operators
| Operator | Description |
|---|---|
equals | Exact match |
not | Not equal |
in | In array |
notIn | Not in array |
lt, lte | Less than |
gt, gte | Greater than |
contains | String contains |
startsWith | String starts with |
endsWith | String ends with |
mode | Case sensitivity |
Relation Filters
| Operator | Description |
|---|---|
some | At least one related record matches |
every | All related records match |
none | No related records match |
is | Related record matches (1-to-1) |
isNot | Related record doesn't match |
Resources
- Prisma Client API Reference
- CRUD Operations
- Filtering and Sorting
How to Use
Pick the category from the table above, then open the matching reference file for implementation details and examples.
All Files
9 filesInstall prisma-client-api
Download and extract the skill files to your .claude/skills/ directory.
Download ZIPClone the repository and copy the skill files to your project.
git clone https://github.com/prisma/skills/blob/main/prisma-client-api/SKILL.md # Copy SKILL.md to your .claude/skills/ directory
Copy





Home
