文章

supabase postgres updatedAt 自动更新时间戳

由于在prisma 创建model时,@updatedAt 不起作用

model Book {
  id        String   @id @default(dbgenerated("gen_random_uuid()"))
  createdAt DateTime @default(dbgenerated("(now() AT TIME ZONE 'utc'::text)")) @db.Timestamptz(6)
  updatedAt DateTime @default(dbgenerated("(now() AT TIME ZONE 'utc'::text)")) @updatedAt @db.Timestamptz(6)
}

1.确保表中有updatedAt(我这是驼峰命名)

2.创建函数

CREATE OR REPLACE FUNCTION update_updated_at_column()
RETURNS TRIGGER AS $$
BEGIN
  NEW."updatedAt" = NOW();
  RETURN NEW;
END;
$$ LANGUAGE plpgsql;

3.创建触发器

CREATE TRIGGER set_updated_at
BEFORE UPDATE ON your_table  // 大写的表名需要双引号,如 “Book”
FOR EACH ROW
EXECUTE FUNCTION update_updated_at_column();

4.将上面的语句复制到supabase SQL Editor 执行

许可协议:  CC BY 4.0