17.10 - UPDATE - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ操作言語

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Release Date
2021年7月
Content Type
プログラミング リファレンス
Publication ID
B035-1146-171K-JPN
Language
日本語 (日本)

テーブルの既存の行にある列値を変更します。

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;