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