How to implement in MySQL – update if data exists, add if data does not exist. MySQLでデータが存在する場合は更新し、存在しない場合は追加する方法はどうすればいいですか?
存在すれば更新、存在しなければ追加する操作を実行するには、INSERT…ON DUPLICATE KEY UPDATE文を使用できます。
usersというテーブルがあると仮定し、そのテーブルにはid、name、ageの3つの列が含まれており、idがプライマリーキーであるとします。今、idに基づいてデータが存在するかどうかを判断し、存在する場合はnameとageを更新し、存在しない場合は新しいデータを追加する必要があります。
以下の文章を日本語に自然に言い換えることができます。
INSERT INTO users (id, name, age)
VALUES (1, 'John', 25)
ON DUPLICATE KEY UPDATE name = VALUES(name), age = VALUES(age);
上記の例では、idが1のデータを挿入しようとしています。もし既にそのidが存在する場合は、nameとageの値を’John’と25に更新します。もしidが存在しない場合は、新しいデータを挿入します。
注意:この文を使用する前に、id列にプライマリキー制約またはユニークインデックスを追加して、その一意性を確保してください。