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

AnalyticDB:UPDATE

最終更新日:Aug 13, 2024

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;