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で書く機会があったので備忘録として残しておきます