0

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

例如:

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

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

那么最后,有没有办法跳过PK场呢?

提前致谢。

4

2 回答 2

3

你可以只插入你想要的值,这样你的 PK 就会自动递增

insert into reviews (col1, col2, col3) select col1, col2, col3 from reviews where rev_id=14

请不要检索/插入 id 列

于 2013-06-03T06:48:08.060 回答
2
insert into reviews (col0, col1, ...) select col0, col1, ... from reviews where rev_id=14;
于 2013-06-03T06:45:33.610 回答