insert?Update?
レコードがなかったらInsert、あったらupdateとか一発でできんのかい・・・と思ったらあった。
INSERT INTO TABLE_NAME ( PK1, PK2, AAA, BBB ) VALUES ( (key1), (key2), 10, 20 ) ON DUPLICATE KEY UPDATE AAA = AAA + 10, BBB = BBB + 20
レコードがなかったらInsert、あったらupdateとか一発でできんのかい・・・と思ったらあった。
INSERT INTO TABLE_NAME ( PK1, PK2, AAA, BBB ) VALUES ( (key1), (key2), 10, 20 ) ON DUPLICATE KEY UPDATE AAA = AAA + 10, BBB = BBB + 20
emura 10:23 AM | 2013年2月12日 パーマリンク | ログインして返信する
Oracle”なら”とか止めてほしいです…覚えきれない…
arai 12:31 AM | 2013年2月9日 パーマリンク | ログインして返信する
OracleならMERGE文ですな!!
emura 10:51 AM | 2013年1月23日 パーマリンク | ログインして返信する
挿入または書き換えるValueが同じの場合(上記の例では、AAA = 10、BBB = 0 )は、Replaceの方がよさそうですね。
uto 12:07 AM | 2013年1月23日 パーマリンク | ログインして返信する
↑のSQLは、キーがだぶってたら、既に入っている行のデータを利用してのUpdateだけど、まったく違ったデータをInsertしたい場合は、Replace文でいけますよ。