Postgresql自增ID提示 duplicate key 的解决办法

今天APP遇到一个莫名其妙的BUG,查了很久的代码,都感觉没有问题。最后只好从数据库下手查,结果发现,是表中的自增ID出现问题,在插入数据时,会时成功时失败,因为主键ID重复。

解决办法是,设置自增ID从某个最大值开始。

表结构查询方法:

    db_elone=# \d read_record;

                             Table "public.read_record"
    Column     |           Type           | Collation | Nullable |                 Default                 
---------------+--------------------------+-----------+----------+-----------------------------------------
 id            | bigint                   |           | not null | nextval('read_record_id_seq'::regclass)
 created_at    | timestamp with time zone |           |          | 
 updated_at    | timestamp with time zone |           |          | 
 deleted_at    | timestamp with time zone |           |          | 

Indexes:
    "read_record_pkey" PRIMARY KEY, btree (id)
    "idx_read_record_deleted_at" btree (deleted_at)

(END)

复制代码
db_elone=# SELECT MAX(id) FROM read_record;   
 max  
------
 1565
(1 row)

db_elone=# SELECT setval('read_record_id_seq', 1600);  // 设置为1600开始自增
 setval 
--------
   1600
(1 row)

复制代码

不明白为什么会突然出现这个bug 。

==========================华丽的分隔线=========================

捕获5.PNG

个人主页: YEE领域

背单词Flutter APP: 领域英语APP

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享