我要做的是从某个表中选择各行并将它们直接插回到同一个表中。我的问题是我一直遇到整个“重复PK”错误 - 在PostgreSQL中执行INSERT INTO语句时有没有办法跳过PK字段?
例如:
INSERT INTO reviews SELECT * FROM reviews WHERE rev_id=14;
前面SQL中的rev_id
是PK密钥,我不知何故需要跳过它。 (澄清一下:我在SELECT语句中使用*,因为表列的数量可以动态增加。)
最后,有没有办法跳过PK领域?
提前致谢。
答案 0 :(得分:3)
您只能插入所需的值,以便PK自动递增
insert into reviews (col1, col2, col3) select col1, col2, col3 from reviews where rev_id=14
请不要检索/插入id-column
答案 1 :(得分:2)
insert into reviews (col0, col1, ...) select col0, col1, ... from reviews where rev_id=14;