使用 sqlc 进行插入或更新 UUIDs

主要观点:作者是sqlc的粉丝,但作为新手仍在探索其边缘案例,今日案例是使用postgres UPSERT查询。介绍了UPSERT的概念及示例,指出在sqlc中生成的SaveUser查询存在问题,即id字段为非空的uuid.UUID类型,导致新记录插入时uuid为零值,后续新记录会更新现有零 ID 记录,并非期望行为。
关键信息:

  • sqlc被称为反向ORM
  • UPSERT可创建或更新记录。
  • sqlc生成的SaveUser查询中id字段类型及问题。
    重要细节:
  • postgres UPSERT示例查询及作用。
  • 解决方法是结合nullifcoalesce,当@iduuid零值时用uuid_generate_v4(),否则使用@id,以实现UPSERT效果。
阅读 14
0 条评论