我有一个表'new_table',其序列号为主键。 如何使用其他表中的数据向其中插入新记录。我试过了:
insert into new_table (
(select (select NEXTVAL('my_sequence')),a,b,c from old_table)
);
但得到了
重复键值违反唯一约束DETAIL:键(id)=(...) 已经存在。
答案 0 :(得分:0)
只列出跳过序列的列,如:
insert into new_table (a,b,c) select a,b,c from old_table;
如果将默认值设置为获取nextval,则无需手动执行此操作。
select max(id) from new_table
如果是的话,用新的酒窖重启序列,如:
alter sequence my_sequence restart with 1999;
或你的最大值