什么是 CRUD?
CRUD 是数据库最基础的四种操作:Create(创建)、Read(读取)、Update(更新)、Delete(删除)。Prisma Client 提供了类型安全的 API 来完成这些操作,避免手写 SQL 带来的错误。
CRUD 对应方法
Create
prisma.user.create()
Read
findUnique / findMany
Update
update / updateMany
Delete
delete / deleteMany
Create 创建数据
create.ts
typescript
const user = await prisma.user.create({
data: {
name: "Alice",
email: "alice@example.com"
}
});嵌套创建(Nested Create)
Prisma 支持在创建父数据时同时创建子数据,非常适合一对多或多对多关系。
nested-create.ts
typescript
await prisma.user.create({
data: {
name: "John",
email: "john@example.com",
posts: {
create: [
{ title: "Post 1" },
{ title: "Post 2" }
]
}
}
});Read 查询数据
read.ts
typescript
const user = await prisma.user.findUnique({
where: { id: 1 }
});read-many.ts
typescript
const users = await prisma.user.findMany({
orderBy: { id: "desc" }
});关联查询
include.ts
typescript
const user = await prisma.user.findUnique({
where: { id: 1 },
include: {
posts: true
}
});Update 更新数据
update.ts
typescript
await prisma.user.update({
where: { id: 1 },
data: {
name: "Updated Name"
}
});Upsert(不存在则创建)
upsert.ts
typescript
await prisma.user.upsert({
where: { email: "test@example.com" },
update: {
name: "Updated"
},
create: {
name: "New User",
email: "test@example.com"
}
});Delete 删除数据
delete.ts
typescript
await prisma.user.delete({
where: { id: 1 }
});批量操作
batch.ts
typescript
await prisma.user.updateMany({
where: { name: "Alice" },
data: { name: "Updated Alice" }
});
await prisma.user.deleteMany({
where: { isActive: false }
});常见错误
error.ts
typescript
// ❌ 会报错
await prisma.user.update({
data: { name: "test" }
});Prisma 强制要求 update 和 delete 必须指定 where 条件,避免误操作影响整个数据表。
下一步学习
进入查询进阶
select vs include
控制查询字段
复杂 where 查询
条件过滤与组合查询
相关笔记
在数字化一期,此笔记未产生更深相关的共鸣分枝。