mysqlのMERGE文の使い方は何ですか?

MySQLにはMERGE文がありませんが、同様の機能を他の方法で実現することができます。

MySQLでは、INSERT INTO … ON DUPLICATE KEY UPDATE文を使用して、MERGE文に類似した機能を実現することができます。この文の構文は以下の通りです:

INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...)
ON DUPLICATE KEY UPDATE column1 = value1, column2 = value2, ...

このステートメントは、データをテーブルに挿入し、重複するユニークキーが存在する場合は、対応する列が更新されます。更新操作を実行するために、ON DUPLICATE KEY UPDATE句で更新する列とその値を指定します。

例えば、employeesというテーブルがあり、id、name、salaryの3つの列が含まれている場合がある。そのうちidが主キーです。新しいレコードを挿入する場合、同じidのレコードがすでに存在する場合、対応するnameとsalary列を更新するために、次のステートメントを使用できます:

INSERT INTO employees (id, name, salary)
VALUES (1, 'John Doe', 5000)
ON DUPLICATE KEY UPDATE name = 'John Doe', salary = 5000;

idが1のレコードがすでに存在している場合、nameとsalary列が更新され、そうでなければ新しいレコードが挿入されます。

MySQLのINSERT INTO … ON DUPLICATE KEY UPDATE文は、唯一のキーを持つテーブルにしか使用できません。テーブルに唯一のキーがない場合は、代わりにユニークインデックスを作成することで同様の機能を実現できます。

bannerAds