テーブルの既存の行にある列値を変更します。
UPDATE文には、以下の形式が可能です。
- 基本 - テーブルの行を1つ以上更新します。
基本形式は、FROM句を付けても付けなくても指定できます。
- 結合テーブルの基本
結合条件形式では、WHERE条件がテーブル(行を更新するテーブル以外)の行を直接参照するとき、つまりWHERE条件に派生テーブルのsubqueryまたは参照が組み込まれている場合に、テーブルの行を更新します。
- 定位置 - <Teradata Vantage™ - SQLストアド プロシージャおよび埋め込みSQL、B035-1148>を参照してください。
- テンポラル - <Teradata Vantage™ - ANSIテンポラル テーブル サポート、B035-1186>および<Teradata Vantage™ - テンポラル テーブル サポート、B035-1182>を参照してください。
- アップサート - UPDATE (Upsert形式)を参照してください。
以下も参照してください。
- INSERT/INSERT ... SELECT
- MERGE
- Teradata Vantage™ - SQLストアド プロシージャおよび埋め込みSQL、B035-1148のUPDATE(定位置形式)を参照
- UPDATE (Upsert形式)
- Teradata Vantage™ - ANSIテンポラル テーブル サポート、B035-1186
- Teradata Vantage™ - テンポラル テーブル サポート、B035-1182
ANSI準拠
UPDATEは、ANSI SQL:2011に準拠しています。
必要な権限
次の権限のルールが、UPDATE文に適用されます。
- 更新するテーブルまたは列に対するUPDATE権限が必要です。
- UDT列を更新するには、その列に対するUDTUSAGE権限も持っている必要があります。
- UPDATEを実行する場合に、オブジェクトへのREADアクセスも必要であれば、アクセスするオブジェクトに対するSELECT権限を持っていなければなりません。
例えば、以下のリクエストでは、WHERE条件のためにREADアクセスが必要です。
UPDATE table_1 SET column_1 = 1 WHERE column_1 < 0;
同様に、以下のリクエストでは、column_1の新しい値を計算するためにtable_1の値をcolumn_1から読み取る必要があるため、READアクセスが必要です。
UPDATE table_1 SET field_1 = column_1 + 1;
次のリクエストはSELECT権限を必要としません。
UPDATE table_1 SET column_3 = 0 ALL;