[MySQL]INSERTで重複エラーを防止


データを挿入するとき、キー値が重複してエラーが発生した場合.
このような状況を防ぐ方法を理解してみましょう.🧐

INSERT IGNORE

  • 繰り返し発生時にINSERTは使用しません.既存のデータを保持する
  • INSERT IGNORE INTO USER ('id', 'email', 'name') 
    VALUES ('testId', '[email protected]', '테스트');

    REPLACE INTO

  • 重複データ既存データを削除し、新しいデータを挿入します.
  • DELETE -> INSERT
  • REPLACE INTO USER ('id', 'email', 'name') 
    VALUES ('testId', '[email protected]', '테스트');

    ON DUPLICATE KEY UPDATE

  • 繰り返し発生時UPDATE指定のColumn更新
  • のみ
    INSERT INTO USER ('id', 'email', 'name') 
    VALUES ('testId', '[email protected]', '테스트')
    ON DUPLICATE KEY UPDATE name = '테스트';

    Ref