目的
この制御によって、ユーザーは、識別データに関連付けられているフィールドの値を後続のSQL挿入操作に対する応答でデータベースが返すかどうかを指定できます。
他のセッション制御コマンドとは異なり、CLIのSPBファイル(HSHSPBまたはclispb.dat)には、自動生成されたキー取得の使用を指定するためのメソッドは含まれていません。このコマンドは、AUTOKEYRETRIEVEコマンドを使用して、BTEQスクリプト レベルでのみ呼び出すことができます。
構文
次のような場合に当てはまります。
- OFF
- AUTOKEYRETRIVEの初期値はOFFです。 OFFはコマンドに引数を指定しない場合のデフォルト値でもあります。
- ROW
- 結果行とともに識別列が返されます。
- COLUMN
- INSERT文に関連付けられた識別列のみを返します。
使用上の注意
AUTOKEYRETRIEVEコマンドの使用 | 結果 |
---|---|
セッション確立前 | AUTOKEYRETRIEVEコマンドされている、セッション確立前に使用できます。 現在のAUTOKEYRETRIEVE値は、明示的に変更されるまでそれ以降のすべてのリクエストに対して有効です。 一度のBTEQの起動中に実行される複数のLOGON間で持続します。 ただし、現行のデータベースのバージョンが自動生成キー検索をサポートしない場合、この設定は使用しません。 |
例1 – AUTOKEYRETRIEVE
この例では、AUTOKEYRETRIEVE OFFコマンドを実行した場合を示します。
空のテーブルとしてテーブル定義を設定します。
CREATE TABLE MyTable , NO FALLBACK , NO BEFORE JOURNAL , NO AFTER JOURNAL ( MyCol1 INTEGER GENERATED ALWAYS AS IDENTITY , MyCol2 INTEGER ) PRIMARY INDEX ( MyCol1 ) ;
AUTOKEYRETRIEVE をOFFに設定して次のSQL INSERT文を発行した場合、
INSERT INTO MyTable VALUES(,1);
結果には、アクティビティ カウントと経過時間を示す次のようなステータス メッセージのみが表示されます。
*** Insert completed. One row added. *** Total elapsed time was 1 second.
例2 – AUTOKEYRETRIEVE
この例では、AUTOKEYRETRIEVE COLUMNコマンドを実行した場合を示します。
空のテーブルとして表定義を設定します。
CREATE TABLE MyTable , NO FALLBACK , NO BEFORE JOURNAL , NO AFTER JOURNAL ( MyCol1 INTEGER GENERATED ALWAYS AS IDENTITY , MyCol2 INTEGER ) PRIMARY INDEX ( MyCol1 ) ;
AUTOKEYRETRIEVE をCOLUMNに設定して次のSQL INSERT文を発行した場合、
INSERT INTO MyTable VALUES(,1);
結果には識別列に対して生成された値が含まれます。
*** Insert completed. One row added. *** Total elapsed time was 1 second. MyCol1 ----------- 2
例3 – AUTOKEYRETRIEVE
この例では、AUTOKEYRETRIEVE ROWコマンドを実行した場合を示します。
空のテーブルとしてテーブル定義を設定します。
CREATE TABLE MyTable , NO FALLBACK , NO BEFORE JOURNAL , NO AFTER JOURNAL ( MyCol1 INTEGER GENERATED ALWAYS AS IDENTITY , MyCol2 INTEGER ) PRIMARY INDEX ( MyCol1 ) ;
AUTOKEYRETRIEVEをROWに設定して次のSQL INSERT文を発行した場合、
INSERT INTO MyTable VALUES(,1);
結果には、挿入に対して生成された全体の行の値が含まれます。
*** Insert completed. One row added. *** Total elapsed time was 1 second. MyCol1 MyCol2 ----------- ----------- 3 1