UPDATE
文を実行して、データを更新できます。 AnalyticDB for MySQLを使用すると、単一のテーブルまたは複数のテーブルのデータを更新できます。
使用上の注意
UPDATE
ステートメントを実行するテーブルには、主キーが必要です。主キー列のデータは更新できません。
ORDER BYおよびLIMIT句は、単一テーブル更新に対してのみサポートされます。
単一のテーブルを更新するUpdate a single table
構文
UPDATE table_name
SET assignment_list
[WHERE where_condition]
[ORDER BY ...]
[LIMIT ...]
例:
顧客テーブルでIDが2369
されている顧客の名前をClaireに変更します。
UPDATE
customer
SET
customer_name ='Claire'
WHERE
customer_id ='2369';
複数のテーブルを更新するUpdate multiple tables
前提条件
V3.1.6.4以降のAnalyticDB for MySQLクラスターが作成されます。
AnalyticDB For MySQLのマイナーバージョンを表示する方法の詳細については、 Data Lakehouse Editionクラスターについては、「クラスターのマイナーバージョンを表示する方法」をご参照ください。 クラスターのマイナーバージョンを更新するには、テクニカルサポートにお問い合わせください。
構文
UPDATE Table_name1
[INNER JOIN | LEFT JOIN] Table_name2 ON Table_name1.C1 = Table_name2.C1
SET assignment_list
[WHERE where_condition]
使用上の注意
マルチテーブル更新用に更新できるテーブルは2つだけです。
ORDER BYおよびLIMIT句は、マルチテーブル更新ではサポートされません。
複数のテーブルのデータを更新する場合は、1つのテーブルに対してのみ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';
例
LEFT JOIN
を含むUPDATE
ステートメントを実行します。顧客テーブルで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';
INNER JOIN
を含むUPDATE
ステートメントを実行します。顧客テーブルの顧客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;