テーブルにデータをINSERTする時に
既に同じ主キーのデータが存在する場合はUPDATE、
存在しなければINSERTをするSQLサンプルです。
サンプルソース
こんな感じのテーブルを想定します。
項目名 | 型 | 制約 |
---|---|---|
ID | NUMBER(3) | PK |
VAL1 | VARCHAR2(50) | |
VAL2 | VARCHAR2(50) |
(例)ID列(主キー)に"111"が存在しなければ、VAL1に"AAA"、VAL2に"BBB"のデータをINSERT、ID列(主キー)に"111"が存在すれば、VAL1に"CCC"、VAL2に"DDD"のデータをUPDATEする
INSERT INTO
test (ID, VAL1, VAL2)
VALUES
(111, 'AAA', 'BBB')
ON DUPLICATE KEY UPDATE
VAL1='CCC',
VAL2='DDD';
備考
- ORACLEでいうMERGEと同じ機能です。