結論から書くと、PostgreSQLにはINSERT OR UPDATEという書き方は出来ない。
とやる。
1個目( UPDATE文 )は、条件にマッチしなければUPDATEは行われない事を逆手に取ってUPDATE文を投げている。
2個目( INSERT文 )は、SELECT結果をINSERTする方法を使ってデータの登録を行っている。
UPDATE
table_name
SET field1 = 'C',
field2 = 'Z',
WHERE
id = 3;
とやってからINSERT INTO
table_name ( id, field1, field2 )
SELECT 3, 'C', 'Z'
WHERE NOT EXISTS ( SELECT 1 FROM table_name WHERE id = 3 );
1個目( UPDATE文 )は、条件にマッチしなければUPDATEは行われない事を逆手に取ってUPDATE文を投げている。
2個目( INSERT文 )は、SELECT結果をINSERTする方法を使ってデータの登録を行っている。
コメント