前提・実現したいこと
test2 TBLにtest TBLの情報を流し込みたいです。
その際、重複するIDが存在しないレコードについてはINSERT、重複IDが存在するレコードについてはUPDATEを行うような処理をpostgresにて実行したいのですが、SQL実行時点でエラーが発生してしまい、上手く動作しませんでした。
test TBL,test2 TBLは下記条件にて作成しました。
test2 TBLの制約キーは[test2_pkey]です。
SQL
1CREATE TABLE test 2(id CHAR(4) NOT NULL,name TEXT NOT NULL,age INTEGER,PRIMARY KEY (id)); 3 4CREATE TABLE test2 5(id CHAR(4) NOT NULL,name TEXT NOT NULL,age INTEGER,PRIMARY KEY (id));
発生している問題・エラーメッセージ
エラーメッセージ ERROR: "FROM"またはその近辺で構文エラー LINE 7: FROM test AS T ^ SQL 状態:42601 文字:115
該当のソースコード
SQL
1INSERT INTO test2 2SELECT * 3FROM test 4ON CONFLICT ON CONSTRAINT test2_pkey 5DO UPDATE 6SET name = T.name,age = T.age 7FROM test AS T 8WHERE test2.id = T.id;
試したこと
エラーが発生している7行目周辺を色々と書き直してみましたが、改善されませんでした。
補足情報(FW/ツールのバージョンなど)
Postgres9.6
回答1件
あなたの回答
tips
プレビュー