You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Prisma结合PostgreSQL如何将自增字段起始值设置为0?

Prisma PostgreSQL 自增字段起始值设为0的解决方法

Prisma Schema 目前没有提供直接定义自增序列起始值的语法,你可以通过在Prisma迁移中添加自定义SQL的方式实现需求,具体操作如下:

方法1:新项目修改初始迁移

  • 第一步:先按照你现有的模型定义,生成初始迁移(不立刻应用)
    运行命令:
    npx prisma migrate dev --name init --create-only
    
  • 第二步:打开生成的迁移文件夹中的migration.sql文件,在文件末尾追加序列修改语句:
    注意PostgreSQL对驼峰命名的对象需要加双引号包裹,你的场景对应语句如下:
    ALTER SEQUENCE "SortableItem_order_seq" RESTART WITH 0;
    
  • 第三步:保存文件后执行迁移应用修改:
    npx prisma migrate dev
    

修改完成后首次插入数据时,order字段就会从0开始计数。

方法2:已有历史迁移的线上项目

如果你的项目已经有历史迁移,不建议修改之前的迁移文件,可以单独生成一个新的迁移实现修改:

  • 第一步:生成空的专属迁移文件
    npx prisma migrate dev --name adjust_order_start --create-only
    
  • 第二步:打开新生成的空迁移文件,添加上面的ALTER SEQUENCE语句后保存
  • 第三步:应用迁移即可
    npx prisma migrate dev
    

注意事项

  • PostgreSQL默认的序列命名规则是"表名_字段名_seq",如果你的表名或字段名是下划线命名,不需要额外加双引号,驼峰命名必须加双引号才能正确识别序列
  • 该修改会跟随你的迁移文件生效,后续执行prisma migrate reset等操作时不需要重复手动执行SQL
  • 如果后续你删除了order字段再重新创建,需要重新执行一次序列修改操作

内容的提问来源于stack exchange,提问作者CookieEater

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 03:06:01