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 に答える