メインコンテンツまでスキップ
バージョン: 2.5

UPDATE

主キーテーブルの行を更新します。

StarRocks は v2.3 から UPDATE ステートメントをサポートしており、単一テーブルの UPDATE のみをサポートし、共通テーブル式 (CTE) はサポートしていません。

Syntax

UPDATE <table_name>
SET <column_name> = <expression> [, ...]
WHERE <where_condition>

Parameters

table_name

更新するテーブルの名前。

column_name

更新する列の名前。テーブル名を含めることはできません。例えば、'UPDATE t1 SET col = 1' は無効です。

expression

列に新しい値を割り当てる式。

where_condition

行を更新する条件。この条件を満たす行のみが更新されます。このパラメータは必須です。テーブル全体を誤って更新しないようにするためです。テーブル全体を更新したい場合は、'WHERE true' を使用できます。

Examples

従業員情報を記録するために Employees テーブルを作成し、5 行のデータを挿入します。

CREATE TABLE Employees (
EmployeeID INT,
Name VARCHAR(50),
Salary DECIMAL(10, 2)
)
PRIMARY KEY (EmployeeID)
DISTRIBUTED BY HASH (EmployeeID) BUCKETS 1
PROPERTIES ("replication_num" = "3");

INSERT INTO Employees VALUES
(1, 'John Doe', 5000),
(2, 'Jane Smith', 6000),
(3, 'Robert Johnson', 5500),
(4, 'Emily Williams', 4500),
(5, 'Michael Brown', 7000);

全従業員に 10% の昇給を行う必要がある場合、次のステートメントを実行できます。

UPDATE Employees
SET Salary = Salary * 1.1 -- 給与を 10% 増加させます。
WHERE true;

平均給与より低い給与の従業員に 10% の昇給を行う必要がある場合、次のステートメントを実行できます。

UPDATE Employees
SET Salary = Salary * 1.1 -- 給与を 10% 増加させます。
WHERE Salary < (SELECT AVG(Salary) FROM Employees);

Limitations

v2.3 から v2.5 まで、UPDATE ステートメントは単一テーブルの UPDATE のみをサポートし、共通テーブル式 (CTE) はサポートしていません。