MySQL の REPLACE INTO ステートメントの使用方法
MySQLのREPLACE INTO文は、新しいレコードの挿入または既存レコードの更新に使用されます。構文は次のとおりです。
REPLACE INTO table_name (column1, column2, ...) VALUES (value1, value2, ...)
あるいは、サブクエリ形式を使用することもできます。
REPLACE INTO table_name (column1, column2, ...) SELECT value1, value2, ...
挿入・更新するレコードがあるテーブル名はtable_name、挿入・更新するカラム名がcolumn1、column2、…、挿入・更新する値がvalue1、value2、…である。
REPLACE INTO文を実行すると、MySQLはまず INSERT(挿入)を試行します。ユニークキーや主キー制約違反があれば、既存レコードは削除され、その後新しいレコードが挿入されます。
注意:REPLACE INTO ステートメントは、既存のレコードを削除してから新しいレコードを挿入するため、自動採番主キーの値が変更される可能性があります。
REPLACE INTO ステートメントを使用してデータを更新する例を以下に示します。
ユーザーテーブル(名前はusers)があり、id(自動増分プライマリーキー)とnameという2つのフィールドがあるとしましょう。このとき、レコードを挿入または更新します。
最初にユーザーテーブルを作成します:
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50)
);
その後、データを挿入または更新するためにREPLACE INTOステートメントを実行します。
REPLACE INTO users (id, name) VALUES (1, 'John');
idは1でnameが’John’の新しいレコードを挿入します。すでにidが1のレコードが存在している場合は、そのレコードを削除してから新しいレコードを挿入します。
願わくば、貴方のお役に立てれば幸いです!