例: 明示的分離ロード操作によるテーブルへのマージ - 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

ロード分離テーブルの定義および明示的な分離ロード操作の実行に関する詳細については、<Teradata Vantage™ - SQLデータ定義言語-構文規則および例、B035-1144>のロード分離文でCREATE TABLEとALTER TABLEのWITH ISOLATED LOADINGオプションを参照してください。

この例に使用するテーブル定義は、次のとおりです。

CREATE TABLE ldi_table1,
     WITH CONCURRENT ISOLATED LOADING FOR ALL
     (a INTEGER,
      b INTEGER,
      c INTEGER)
PRIMARY INDEX ( a );


CREATE TABLE t1
     (c1 INTEGER,
      c2 INTEGER,
      c3 INTEGER)
PRIMARY INDEX ( c1 );
この文は、テーブルldi_table1で明示的な同時ロード分離の操作を実行します。
 BEGIN ISOLATED LOADING ON ldi_table1 
    USING QUERY_BAND 'LDILoadGroup=Load1;';
この文は、分離ロード セッションとしてセッションを設定します。
SET QUERY_BAND='LDILoadGroup=Load1;' FOR SESSION;
この文は、t1テーブルからldi_table1に同時ロード分離を明示的にマージします。
 MERGE INTO ldi_table1
    USING t1 ON a=c1
    WHEN NOT MATCHED THEN INSERT
    VALUES (c1, c2, c3);
この文は、明示的な同時ロード分離の操作を終了します。
END ISOLATED LOADING FOR QUERY_BAND 'LDILoadGroup=Load1;';
この文を使用すると、同じセッションで次のロード操作のクエリー バンドを削除できます。
SET QUERY_BAND = 'LDILoadGroup=NONE;' FOR SESSION;