同じスキーマを持つ2つのテーブルtable1とtest_table1があります。原因test_table1内の既存のテーブル1からのPK値にpostgresql select into from select
insert into test_table1 select * from table1;
が、これは失敗します。
両方のテーブルには、私がやりたい1.
から始まる行/データおよびPK IDを持っています。
列を指定し、PK列を残しますが、何らかの理由でいずれかの動作していないthatsのことであろうその周りウェイ:例えばを
NOTE -
insert into test_table1 (col1, col2,..., coln) select col1,col2,...,coln from table1;
戻り
私はこれは、MySQLで動作します知っている以下のクエリではありませんPK列、これはちょうどPostgresqlのが原因でしょうか?とにかくその周りに?ERROR: duplicate key value violates unique constraint "test_table1_pkey" DETAIL: Key (id)=(1) already exists.
編集:
両方のテーブルには主キーとシーケンスセットがあります。
テーブルが同じデータを持っていないことは明らかでした。 table1からtest_table1に行を追加したいだけです。
プライマリキーをクエリから除外するように指示する回答については、前にも述べたとおりでした。
どのバージョンですか? 9.5を使用している場合は、 'INSERT .. ON CONFLICT'が動作します。 – Nicarus
テーブルをプライマリキーに設定し、すでに存在する値をテーブルに挿入しています。あなたのMySQLテーブルに一意のプライマリキーが定義されていないため、MySQLで動作しました。完全な答えを得るために、テストテーブルのテーブルスキーマ(制約を含む)を教えてください。 (明らかにする必要があります...行が既にtest_table1に存在し、再度挿入しようとしていますか、またはtest_table1の値をtable1と同じに更新しようとしていますか?) – Twelfth
プライマリを除くすべての列をリストしますキー。ただし、新しいプライマリキーが割り当てられます。 –