Masayan tech blog.

  1. ブログ記事一覧>
  2. mysqlでupsertを実装する方法

mysqlでupsertを実装する方法

公開日

mysqlでupsertを実装する方法

mysql 8.0.19

ORM使っているとupsertは比較的簡単に実装できるのですが、生のsqlで書く機会があったので備忘録として残しておきます

stocksテーブル

menu_name(PK)

stock_number

varchar

int

INSERT INTO stocks(menu_name, stock_number)
VALUES('ナポリタン', 10)
ON DUPLICATE KEY
UPDATE
stock_number = stock_number + 10;

例えば上記のように、メニュー名が主キーのstocksテーブルに、ナポリタンの在庫を挿入する場合、ナポリタンというメニュー名のレコードが存在していなければinsertを行い、存在していればupdateするというupsert処理が実現できます。

※エスケープ処理等は自前で用意してください。

おまけ

下記サイトで、sqlの練習問題を解くと結構身につきます

まとめ

いかがでしたでしょうか。本記事では、mysqlでupsertを実装する方法について紹介しています。ORM使っているとupsertは比較的簡単に実装できるのですが、生のsqlで書く機会があったので備忘録として残しておきます