代码在测试环境中运行了一段时间,之前都没有问题,突然pg数据库中的某个表不能插入记录了,具体来说是新插入的主键与表中已有记录的主键重复导致入库失败,但是主键设置的是自增策略,理论上说,不会重复。网上看到有人说需要设置下该表主键对应序列的下一个值。
查看表的数据定义语句如下
可以看到pg数据库中关于主键storageid是如何自增的,定义了序列'datastorage_storageid_seq1',我们可以通过设置自增时该序列下一个值,来避免主键重复的问题。
select setval('序列名', (select max('主键id') from '表名') + 1);
我这里是
select setval('datastorage_storageid_seq1', (select max('storageid') from 'datastorage') + 1)
之后发现数据表可以正常插入记录了。。。
标签:postgresql,datastorage,数据库,插入,storageid,主键,select From: https://www.cnblogs.com/BlueSky2021/p/17913220.html