AUTOKEYRETRIEVE - Basic Teradata Query

Basic Teradata Query リファレンス

Product
Basic Teradata Query
Release Number
16.20
Published
2018年4月
Language
日本語
Last Update
2019-07-11
dita:mapPath
ja-JP/kil1527114222313.ditamap
dita:ditavalPath
ja-JP/kil1527114222313.ditaval
dita:id
B035-2414
Product Category
Teradata Tools and Utilities

目的

この制御によって、ユーザーは、識別データに関連付けられているフィールドの値を後続の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