UPDATE
主キーテーブルの行を更新します。
StarRocks は v2.3 から UPDATE 文をサポートしており、単一テーブルの UPDATE のみをサポートし、共通テーブル式 (CTE) はサポートしていません。バージョン 3.0 から、StarRocks は構文を拡張し、マルチテーブルのジョインと CTE をサポートします。データベース内の他のテーブルと更新対象のテーブルをジョインする必要がある場合、FROM 句または CTE でこれらの他のテーブルを参照できます。バージョン 3.1 以降、UPDATE 文は列モードでの部分更新をサポートしており、少数の列を含むが多数の行を含むシナリオに適しており、更新速度が速くなります。
このコマンドを実行するには、更新したいテーブルに対する UPDATE 権限が必要です。
使用上の注意
複数のテーブルを含む UPDATE 文を実行する際、StarRocks は UPDATE 文の FROM 句内のテーブル式を同等の JOIN クエリ文に変換します。したがって、UPDATE 文の FROM 句で指定するテーブル式がこの変換をサポートしていることを確認してください。例えば、UPDATE 文が 'UPDATE t0 SET v1=t1.v1 FROM t1 WHERE t0.pk = t1.pk;' の場合、FROM 句のテーブル式は 't0 JOIN t1 ON t0.pk=t1.pk;' に変換できます。StarRocks は、JOIN クエリの結果セットに基づいて更新するデータ行を一致させます。結果セットの複数の行が更新対象のテーブルの特定の行に一致する可能性があります。このシナリオでは、その行はこれらの複数の行の中のランダムな行の値に基づいて更新されます。
システム変数 insert_timeout を使用して、UPDATE 操作のタイムアウト時間を設定することができます。
構文
単一テーブルの UPDATE
更新対象のテーブルのデータ行が WHERE 条件を満たす場合、これらのデータ行の指定された列に新しい値が割り当てられます。
[ WITH <with_query> [, ...] ]
UPDATE <table_name>
SET <column_name> = <expression> [, ...]
WHERE <where_condition>