PostgreSQL - INSERT INTO语句

时间:2013-06-03 06:37:35

标签: postgresql sql-insert

我要做的是从某个表中选择各行并将它们直接插回到同一个表中。我的问题是我一直遇到整个“重复PK”错误 - 在PostgreSQL中执行INSERT INTO语句时有没有办法跳过PK字段?

例如:

INSERT INTO reviews SELECT * FROM reviews WHERE rev_id=14;

前面SQL中的rev_id是PK密钥,我不知何故需要跳过它。 (澄清一下:我在SELECT语句中使用*,因为表列的数量可以动态增加。)

最后,有没有办法跳过PK领域?

提前致谢。

2 个答案:

答案 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;