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のレコードが存在している場合は、そのレコードを削除してから新しいレコードを挿入します。

願わくば、貴方のお役に立てれば幸いです!

bannerAds