2013/12/16

mysql update insert 同時 重複など hibernate native query

★REPLACE
        INSERT文と同じ構文でINSERTの部分をREPLACEに置き換えたもの
        動作としては通常のINSERTと同じでDUPLICATE KEYが発生した場合に該当のレコードを削除してINSERT
★INSERT ON DUPLICATE KEY UPDATE
        INSERT文のオプションとして記述
        動作としては通常のINSERTと同じでDUPLICATE KEYが発生した場合にオプションで指定したUPDATE文を実行
       
・INSERT INTO table (a,b,c) VALUES (1,2,3),(4,5,6)
  ON DUPLICATE KEY UPDATE c=VALUES(a)+VALUES(b);

・INSERT INTO table (a,b,c) VALUES  select a,b,c where ***
ON DUPLICATE KEY UPDATE c=VALUES(a)+VALUES(b);

★insert ignore ....重複データがあれば、無視される