使用Prisma ORM创建Bug时触发Bug_authorId_key唯一约束失败
解决Prisma创建Bug时的唯一约束错误
错误原因
报错Unique constraint failed on the constraint: Bug_authorId_key,是因为你的数据库Bug表的authorId字段被设置了唯一约束,但业务逻辑中一个用户应该能提交多个Bug,这个约束和需求冲突。
解决步骤
1. 确认Prisma Schema正确性
检查你的Bug模型定义,确保authorId字段没有添加@unique修饰符(你的当前Schema已经符合要求):
model Bug { id Int @id @default(autoincrement()) title String description String status String authorId Int author User @relation(fields: [authorId], references: [id]) }
2. 生成并应用数据库迁移
通过Prisma迁移移除authorId的唯一约束:
npx prisma migrate dev --name remove-authorId-unique-constraint
执行该命令后,Prisma会自动生成迁移文件并将变更同步到你的MySQL数据库。
备选方案:手动修改数据库
如果不想用迁移,也可以直接在MySQL中执行SQL删除唯一约束:
ALTER TABLE Bug DROP INDEX Bug_authorId_key;
验证代码
你的Bug创建代码逻辑是正确的,无需修改:
const bug = await prisma.bug.create({ data: { title: req.body.title, status: req.body.status, description: req.body.description, author: { connect: {id: req.body.authorId} } } })
内容的提问来源于stack exchange,提问作者Niwau
相关产品推荐
相关产品推荐

