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

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
Published
2021年1月
Language
日本語
Last Update
2021-03-30
dita:mapPath
ja-JP/vnq1596660420420.ditamap
dita:ditavalPath
ja-JP/vnq1596660420420.ditaval
dita:id
B035-1146
Product Category
Software
Teradata Vantage

新しく作成された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で置き換えられました。
  • ユーザー指定値がシステム生成番号によって上書きされると、要求元に警告が返されます。
  • 並列性があるため、識別列シーケンスの最初の番号を、挿入される最初の行に割り振る必要はありません。