【发布时间】:2017-08-03 11:21:49
【问题描述】:
我正在使用 IntelliJ 和数据库工具。我遇到了一些数据问题,所以我删除了一行,但又想再添加几行...
我使用了克隆选项:
然后我修改了我的值并点击了commit 按钮。
但是,插入失败并出现错误:
错误:重复键值违反唯一约束“主键 some_table”详细信息:键 (id)=(58) 已存在。
然后我尝试通过控制台手动插入,但我得到了同样的错误。 每次执行此操作时,id 都会增加...我有数千条记录,因此在手指折断之前我无法继续单击。
这是id 的样子(创建表时):
id bigserial not null constraint "Primary Key some_table"
primary key
当我尝试修改表格时,我看到 id 的默认值设置如下:
nextval('some_table_id_seq'::regclass)
我试过了:
INSERT INTO some_table (id,...columns..) VALUES (DEFAULT,...columns...);
和
INSERT INTO some_table (...columns..) VALUES (...columns...);
但我得到了同样的错误......
我意识到我可以做一些事情 like 运行查询以获取 MAX id 和 然后 做我的插入,但这对我来说似乎有点荒谬。
如何调整我的INSERT,使其自动获取新的/下一个id?
例如,MSSQL 已使用newid() 自动为您处理此问题。
【问题讨论】: