我在postgres中有以下表格:
原文链接:https://www.f2er.com/postgresql/193225.htmlCREATE TABLE "test" ( "id" serial NOT NULL PRIMARY KEY,"value" text )
我在做以下插入:
insert into test (id,value) values (1,'alpha') insert into test (id,value) values (2,'beta') insert into test (value) values ('gamma')
在前两个插入中,我明确提到了id。但是在这种情况下,表的自动增量指针不会更新。因此在第三个插入我得到错误:
ERROR: duplicate key value violates unique constraint "test_pkey" DETAIL: Key (id)=(1) already exists.
我从来没有在MyISAM和INNODB引擎中的MysqL中遇到这个问题。显而易见,MysqL总是根据最大行ID来更新autoincrement指针。
postgres中的这个问题的解决方法是什么?我需要它,因为我想对我的表中的一些ids进行更严格的控制。
更新:
我需要它,因为一些值我需要一个固定的id。对于其他新的条目,我不介意创建新的条目。
我认为只要我明确地插入ids,可能手动将nextval指针递增到max(id)1。但我不知道该怎么做