如何在Prisma Dart ORM中将可空字段更新为NULL值?
在Prisma Dart ORM中将可空字段更新为NULL的正确方式
问题出在你直接给myNullableColumn传null——Prisma Dart客户端会把这种情况视为不更新该字段,自然不会覆盖原有值。要显式触发设置为NULL的操作,需要使用Prisma生成的Union类型的NULL变体。
修改后的代码示例
await prisma.testTable.update( data: PrismaUnion.$1( TestTableUpdateInput( myNullableColumn: obj.value != null ? PrismaUnion.$1(obj.value!) : PrismaUnion.$2(), // 用$2明确指定设置为NULL ), ), );
关键说明
- Prisma为可更新的可空字段生成的是Union类型,通常
$1代表传入具体值,$2代表设置为NULL(具体编号可能因schema不同略有差异,可查看生成的TestTableUpdateInput源码确认)。 - 确保你的Prisma Schema中该字段确实标记为可空(比如
myNullableColumn String?),否则无法设置为NULL。
内容的提问来源于stack exchange,提问作者Nando Lambrusco
相关产品推荐
相关产品推荐

