UPDATE 文を実行して、AnalyticDB for MySQL 内の単一テーブルまたは複数テーブルのデータを更新できます。AnalyticDB for MySQL
使用上の注意
UPDATE文を実行するテーブルには、プライマリキーが必要です。プライマリキー列のデータは更新できません。
最大 2 つのテーブルを結合できます。
ORDER BY 句と LIMIT 句は、単一テーブルの更新に対してのみサポートされています。
INSERT ON DUPLICATE KEY UPDATE文を実行して大量のデータを更新する場合、または高頻度(100 QPS 以上)でデータを更新する場合、CPU 使用率が大幅に増加する可能性があります。REPLACE INTO文を実行してデータを一括更新することをお勧めします。 詳細については、「REPLACE INTO」をご参照ください。
単一テーブルの更新
構文
UPDATE table_name
SET assignment_list
[WHERE where_condition]
[ORDER BY ...]
[LIMIT ...] 例
customer テーブルで ID が 2369 の顧客の名前を Claire に変更します。
UPDATE
customer
SET
customer_name ='Claire'
WHERE
customer_id ='2369'; 複数テーブルの更新
サポートされているバージョン
V3.1.6.4 以降の AnalyticDB for MySQL クラスター。
AnalyticDB for MySQL クラスターのマイナーバージョンを表示および更新するには、AnalyticDB for MySQL コンソール にログインし、クラスター情報 ページの 構成情報 セクションに移動します。 詳細については、「マイナーバージョンを表示および更新する」をご参照ください。
構文
UPDATE Table_name1
[INNER JOIN | LEFT JOIN] Table_name2 ON Table_name1.C1 = Table_name2.C1
SET assignment_list
[WHERE where_condition]使用上の注意
ORDER BY 句と LIMIT 句は、複数テーブルの更新ではサポートされていません。
複数テーブルのデータを更新する場合、最大 2 つのテーブルを結合できます。
複数テーブルのデータを更新する場合、1 つの UPDATE 文は単一テーブルに対してのみ実行できます。
複数テーブルのデータを更新する場合は、更新するテーブルを最初に配置します。 たとえば、次の文を実行して、
customerテーブルのcustomer IDを 1 に変更します。UPDATE customer LEFT JOIN new_customer ON customer.customer_name = new_customer.customer_name SET customer.customer_id = '1';
例
UPDATE文を実行します。この文にはLEFT JOINが含まれています。customer テーブルで ID が
2369の顧客の年齢を 42 に変更します。UPDATE customer LEFT JOIN new_customer ON customer.customer_id = new_customer.customer_id SET customer.customer_age = 42 WHERE new_customer.customer_id = '2369';UPDATE文を実行します。この文にはINNER JOINが含まれています。customer テーブルの customer ID を 2369 に変更します。
UPDATE customer INNER JOIN new_customer ON customer.customer_name = new_customer.customer_name SET customer.customer_id = '2369';customer テーブルの customer_name フィールドを new_customer テーブルの customer_name フィールドに変更します。
UPDATE customer INNER JOIN new_customer ON customer.customer_id = new_customer.customer_id SET customer.customer_name = new_customer.customer_name;