记录一次postgresql主键自增问题的解决
- 问题描述:postgresql中有一个表A,A的主键目前一用到143位置(A.id=143)。那么我新插入的数据应该是从144开始使用主键id自增。
但是出现的问题就是主键不是自增,而是一些很大或者很小的数。 - 解决办法:
- 在java对应实体类的主键上加
@TableId(type = IdType.AUTO)
,并且使用包装类型作为主键id
的类型。(如下图所示)
- 然后给主键id关联一个自增序列。(下面的语句在SQL编辑器运行脚本即可)。
`CREATE SEQUENCE public.table_id_seq
INCREMENT BY 1
MINVALUE 1
MAXVALUE 2147483647
START 144
CACHE 1
NO CYCLE;
ALTER TABLE public.table ALTER COLUMN id SET DEFAULT nextval('table_id_seq'::regclass);`
点击SQL编辑器:
然后点击运行:
最后在java端保存数据的时候就实现了主键自增。
分类:
postgresql
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通