MySQL5逆引き大全460の極意

データ操作命令(SELECT以外)の極意 - Tips96 挿入時に主キー制約に違反する場合に更新処理を行うには

登録タグ
SQL
Icon comment count 0
Icon stock count 0

5-1挿入Tips96 挿入時に主キー制約に違反する場合に更新処理を行うには

Level2

PointINSERT命令でON DUPLICATE KEY UPDATE句を指定します

構文   
INSERT INTO テーブル名 [(列名1, 列名2,...)] VALUES (値1, 値2,...)
  ON DUPLICATE KEY UPDATE 列名1 = 値1 [,...]

主キー制約/一意性制約に違反する場合、IGNOREキーワード(095項)はただ単に挿入処理をスキップするだけですが、ON DUPLICATE KEY UPDATE句を指定することで、該当レコードを更新(上書き)することも可能です。上書きのためのデータは「列名1 = 値1 [,...]」の形式で指定します。

ただし、更新の対象となるのは、ON DUPLICATE KEY UPDATE句で指定された列だけです。VALUES句で指定されていても、ON DUPLICATE KEY UPDATE句で指定されていないものは更新対象にはなりません。

主キー制約/一意性制約に違反する場合に、VALUES句の内容で既存レコードを更新(置き換えた

出典情報

Medium

MySQL5逆引き大全460の極意

  • 著者: 山田 祥寛

コメント

    コメントはありません