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

AnalyticDB:UPDATE

最終更新日:Jun 04, 2025

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;