データベース - SQL 基本構文 - INSERT(UPSERT) - UPSERT MySQL


クラウディア 


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」軍曹を参考にさせていただきました。

audiobook.jp
AbemaTV 無料体験
Amazonギフトカード
ハイスピードプラン
ベルリッツ
5G CONNECT
earthcar(アースカー)
損保との違い
【usus ウズウズ】
TikTok Shop 【リピート用プログラム】
U-NEXT
サウンドハウス
薬屋の独り言
EaseUS
JETBOY
葬送のフリーレン Prime Video
EMEET 1
ネットオークションの相場、統計、価格比較といえばオークファン
アフィリエイトのアクセストレード
健康サポート特集
それがだいじWi-Fi