17.05 - 例: INSERTおよびGENERATED ALWAYS識別列 - Advanced SQL Engine - Teradata Database

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

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

新しく作成されたcolumn_1table_1が、GENERATED ALWAYSと定義された識別列であると想定します。次のINSERT文は、挿入される行が列の値を指定している場合であっても、挿入される行のcolumn_1の番号を自動的に生成します。

     INSERT INTO table_1 (column_1, column_2, column_3)
     VALUES (111,111,111);
     INSERT INTO table_1 (column_1, column_2, column_2)
     VALUES (,222,222);

table_1のすべての行を選択して、挿入を検査します。

     SELECT *
     FROM table_1;
     *** Query completed. 2 rows found. 3 columns returned.
     *** Total elapsed time was 1 second.
      column_1  column_2  column_3
     --------- --------- ---------
             2       111       111
             1       222       222
この結果について、以下の点に注意する必要があります。
  • column_1はGENERATED ALWAYSと定義されているため、最初の挿入でcolumn_1に値111が指定されましたが、値は拒否され、生成値2で置き換えられました。
  • ユーザー指定値がシステム生成番号によって上書きされると、要求元に警告が返されます。
  • 並列性があるため、識別列シーケンスの最初の番号を、挿入される最初の行に割り振る必要はありません。