关于 prisma-client-api
面向当前 Prisma 项目开发者的 Prisma Client 参考技能,按主题整理查询、过滤、关系、事务、原始 SQL 和客户端方法的指导。
主要功能
- 01CRUD 与批量查询指导
- 02过滤、排序与分页
- 03关系读取和嵌套写入
- 04事务模式参考
- 05原始 SQL 与客户端方法参考
适用场景
- 01编写 Prisma Client 模型查询
- 02筛选并调整查询结果
- 03处理相关记录
- 04实现数据库事务
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ prisma/ skills --skill prisma-client-api安装后在 Claude Code 中输入/prisma-client-api确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/client-methods.mdconstructor.mdfilters.mdmodel-queries.mdquery-options.mdraw-queries.mdrelations.mdtransactions.md详细介绍
Prisma Client API 参考
Prisma Client 的完整 API 参考。本技能为当前 Prisma 项目中的模型查询、筛选、关系和客户端方法提供指导。
适用场景
在以下情况下参考本技能:
- 使用 Prisma Client 编写数据库查询
- 执行 CRUD 操作(创建、读取、更新、删除)
- 筛选和排序数据
- 处理关系
- 使用事务
- 配置客户端选项
按优先级划分的规则类别
| 优先级 | 类别 | 影响 | 前缀 |
|---|---|---|---|
| 1 | 客户端构造 | 高 | constructor |
| 2 | 模型查询 | 严重 | model-queries |
| 3 | 查询形状 | 高 | query-options |
| 4 | 筛选 | 高 | filters |
| 5 | 关系 | 高 | relations |
| 6 | 事务 | 严重 | transactions |
| 7 | 原始 SQL | 严重 | raw-queries |
| 8 | 客户端方法 | 中 | client-methods |
快速参考
constructor-PrismaClient设置、适配器连接、日志记录和 SQL 注释器插件model-queries- CRUD 操作和批量操作query-options-select、include、omit、排序、分页filters- 标量和逻辑筛选运算符relations- 关系读取和嵌套写入transactions- 数组事务和交互式事务模式raw-queries-$queryRaw和$executeRaw的安全性client-methods- 生命周期方法、扩展,以及适用于prisma-client的satisfies模式
客户端实例化
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 })
模型查询方法
| 方法 | 说明 |
|---|---|
findUnique() | 按唯一字段查找一条记录 |
findUniqueOrThrow() | 查找一条记录,否则抛出错误 |
findFirst() | 查找第一条匹配的记录 |
findFirstOrThrow() | 查找第一条匹配的记录,否则抛出错误 |
findMany() | 查找多条记录 |
create() | 创建一条新记录 |
createMany() | 创建多条记录 |
createManyAndReturn() | 创建多条记录并返回这些记录 |
update() | 更新一条记录 |
updateMany() | 更新多条记录 |
updateManyAndReturn() | 更新多条记录并返回这些记录 |
upsert() | 更新或创建记录 |
delete() | 删除一条记录 |
deleteMany() | 删除多条记录 |
count() | 统计匹配的记录数 |
aggregate() | 聚合值(总和、平均值等) |
groupBy() | 分组并聚合 |
查询选项
| 选项 | 说明 |
|---|---|
where | 筛选条件 |
select | 要包含的字段 |
include | 要加载的关系 |
omit | 要排除的字段 |
orderBy | 排序顺序 |
take | 限制结果数量 |
skip | 跳过结果(分页) |
cursor | 基于游标的分页 |
distinct | 仅返回唯一值 |
客户端方法
| 方法 | 说明 |
|---|---|
$connect() | 显式连接到数据库 |
$disconnect() | 断开与数据库的连接 |
$transaction() | 执行事务 |
$queryRaw() | 执行原始 SQL 查询 |
$executeRaw() | 执行原始 SQL 命令 |
$on() | 订阅事件 |
$extends() | 添加扩展 |
快速示例
查找记录
// Find by unique field
const user = await prisma.user.findUnique({
where: { email: '[email protected]' }
})
// Find with filter
const users = await prisma.user.findMany({
where: { role: 'ADMIN' },
orderBy: { createdAt: 'desc' },
take: 10
})
创建记录
const user = await prisma.user.create({
data: {
email: '[email protected]',
name: 'Alice',
posts: {
create: { title: 'Hello World' }
}
},
include: { posts: true }
})
更新记录
const user = await prisma.user.update({
where: { id: 1 },
data: { name: 'Alice Smith' }
})
删除记录
await prisma.user.delete({
where: { id: 1 }
})
事务
const [user, post] = await prisma.$transaction([
prisma.user.create({ data: { email: '[email protected]' } }),
prisma.post.create({ data: { title: 'Hello', authorId: 1 } })
])
规则文件
详细 API 文档:
references/constructor.md - PrismaClient constructor options
references/model-queries.md - CRUD operations
references/query-options.md - select, include, omit, where, orderBy
references/filters.md - Filter conditions and operators
references/relations.md - Relation queries and nested operations
references/transactions.md - Transaction API
references/raw-queries.md - $queryRaw, $executeRaw
references/client-methods.md - $connect, $disconnect, $on, $extends
筛选运算符
| 运算符 | 说明 |
|---|---|
equals | 完全匹配 |
not | 不等于 |
in | 在数组中 |
notIn | 不在数组中 |
lt、lte | 小于 |
gt、gte | 大于 |
contains | 字符串包含 |
startsWith | 字符串以指定内容开头 |
endsWith | 字符串以指定内容结尾 |
mode | 大小写敏感性 |
关系筛选器
| 运算符 | 说明 |
|---|---|
some | 至少一条相关记录匹配 |
every | 所有相关记录都匹配 |
none | 没有相关记录匹配 |
is | 相关记录匹配(一对一) |
isNot | 相关记录不匹配 |
资源
使用方法
从上表中选择类别,然后打开对应的参考文件,查看实现细节和示例。
评论
支持 Markdown