すべてのプロダクト
Search
ドキュメントセンター

AnalyticDB:REPLACE SELECT FROM

最終更新日:Mar 28, 2026

REPLACE SELECT FROM は、あるテーブル (またはビュー) から別のテーブルにレコードをリアルタイムでコピーします。各レコードについて、ターゲットテーブルにプライマリキーがすでに存在するかどうかを確認します。存在する場合、既存のレコードは削除され、新しいレコードが挿入されます。存在しない場合、レコードは直接挿入されます。

仕組み

コピーされる各レコードに対して、AnalyticDB for MySQL は次のステップを実行します。

  1. ターゲットテーブルにレコードを挿入しようとします。

  2. プライマリキーの競合が発生した場合、競合するレコードを削除します。

  3. 新しいレコードを挿入します。

REPLACE SELECT FROM を使用する場合

プライマリキーが一致する既存のレコードを上書きする必要がある場合 (たとえば、更新されたソースデータでサマリーテーブルをリフレッシュする場合など) に REPLACE SELECT FROM を使用します。

構文

REPLACE INTO table_name
[(column_name, ...)]
query;

パラメーター

パラメーター説明
table_nameターゲットテーブルの名前。この文を実行する前に、テーブルが存在している必要があります。
column_name(オプション) データをコピーする先の列。指定した場合、SELECT 句の列は、リストされた列と同じ順序で、互換性のあるデータ型である必要があります。
queryコピーするレコードを定義する SELECT FROM TABLE または SELECT FROM VIEW 文。

前提条件

  • ターゲットテーブルが存在すること。

customer テーブルから new_customer テーブルに 3 つの列をコピーし、プライマリキーが一致する既存のレコードを上書きします。

REPLACE INTO new_customer (customer_id, customer_name, phone_num)
  SELECT customer_id, customer_name, phone_num FROM customer
  WHERE customer.customer_name = 'Alan';