- 1. 概要
- 2. ON DUPLICATE KEY
- 3. 参考サイト
1. 概要
「MySQL」で「UPSERT」を実現する方法です。
2. ON DUPLICATE KEY
下記のようにテーブルを作成しているとして。
CREATE TABLE users
(
email VARCHAR(255) NOT NULL
, name VARCHAR(255) NOT NULL
, age TINYINT UNSIGNED NOT NULL
, PRIMARY KEY (email, name)
);
下記の「SQL」を用います。
INSERT INTO users (email, name, age)
VALUES ('test@example.com', 'Taro', 30)
ON DUPLICATE KEY UPDATE
name = VALUES(name),
age = VALUES(age);
テーブルが空っぽの状態で、上記を実行すると。
SELECT * FROM users;
の結果が下記になります。
+------------------+------+-----+
| email | name | age |
+------------------+------+-----+
| test@example.com | Taro | 30 |
+------------------+------+-----+
この状態で、下記の「SQL」を実行すると。
INSERT INTO users (email, name, age)
VALUES ('test@example.com', 'Taro', 31)
ON DUPLICATE KEY UPDATE
name = VALUES(name),
age = VALUES(age);
「SELECT」の結果は、下記になります。
+------------------+------+-----+
| email | name | age |
+------------------+------+-----+
| test@example.com | Taro | 31 |
+------------------+------+-----+
3. 参考サイト
本ページは、「ChatGPT」軍曹を参考にさせていただきました。
|