mysql 如何在prisma中使用@default和degenerated()声明数据库默认值?

dwbf0jvd  于 2022-11-28  发布在  Mysql
关注(0)|答案(1)|浏览(228)

要在生成的sql迁移文件中声明默认二进制值。
我尝试过使用@default(dbgenerated(“UUID_TO_BIN(uuid())”),但是在生成的SQL文件中没有实现该表达式。

lyfkaqu1

lyfkaqu11#

这对我很有效:@default(dbgenerated("(UUID_TO_BIN(UUID()))"))
在函数前后再添加一个括号。
schema.prisma文件中的模型如下所示

model user {
  id   Bytes  @default(dbgenerated("(UUID_TO_BIN(UUID()))")) @db.Binary(16)
  name String @db.VarChar(100)
}

如果未提及@db.Binary(16),则架构中的默认数据类型将为LONGBLOB
使用SELECT BIN_TO_UUID(id) FROM user查看实际的UUID。

相关问题