记录一次postgresql主键自增问题的解决

  • 问题描述:postgresql中有一个表A,A的主键目前一用到143位置(A.id=143)。那么我新插入的数据应该是从144开始使用主键id自增。
    但是出现的问题就是主键不是自增,而是一些很大或者很小的数。
  • 解决办法:
  1. 在java对应实体类的主键上加@TableId(type = IdType.AUTO),并且使用包装类型作为主键id的类型。(如下图所示)
  2. 然后给主键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端保存数据的时候就实现了主键自增。

posted @ 2024-05-30 11:01  龙存安然  阅读(239)  评论(0)    收藏  举报