MySQLのON DUPLICATE KEY UPDATEステートメントを使用した効率的なデータの挿入と更新


  1. 単一の行の挿入と更新:
INSERT INTO テーブル名 (列1, 列2, 列3)
VALUES (値1, 値2, 値3)
ON DUPLICATE KEY UPDATE
列1 = 新しい値1,
列2 = 新しい値2,
列3 = 新しい値3;

この例では、テーブル名に新しい行を挿入し、もし既に重複するキーが存在する場合には、指定した列の値を更新します。

  1. 複数の行の挿入と更新:
INSERT INTO テーブル名 (列1, 列2, 列3)
VALUES (値1, 値2, 値3),
       (値4, 値5, 値6),
       (値7, 値8, 値9)
ON DUPLICATE KEY UPDATE
列1 = VALUES(列1),
列2 = VALUES(列2),
列3 = VALUES(列3);

この例では、複数の行を同時に挿入し、もし重複するキーが存在する場合には、指定した列の値を挿入しようとした値で更新します。

  1. 他の列の値を使用した更新:
INSERT INTO テーブル名 (列1, 列2, 列3)
VALUES (値1, 値2, 値3)
ON DUPLICATE KEY UPDATE
列3 = 列3 + 1;

この例では、列3の値を現在の値に1を加えるように更新しています。他の列の値を使用した更新処理も可能です。

これらのコード例を使用すると、ON DUPLICATE KEY UPDATEステートメントを使ってデータの挿入と更新を効率的に行うことができます。必要に応じて、テーブルの構造や要件に合わせてカスタマイズしてください。