2016-03-30 4 views
1

私は私が作成したselect文からレコードを挿入したい私はINSERTクエリのアクセスのためのTeradata LOCKのROWは

CREATE VOLATILE TABLE Temp 
(
ID VARCHAR(30), 
has_cond INT 
) ON COMMIT PRESERVE ROWS; 

以下のコードを使用して作成teradataVOLATILE TABLEを持っています確かに非常に大きなSQL文とは、先に進む前に、行ロックを必要と

INSERT INTO Temp 
(ID ,has_cond) 
SELECT * FROM.... 

は、誰もが私は私のVOLATILE TABLEそのまま本番テーブルにレコードを挿入することができますので、安全に行をロックする方法を教えてもらえますし、私は、WANませんバックグラウンドで起きているかもしれないいくつかのETLをロックアウトするtは

答えて

4

私はあなたがビューでselectを入れない限り、行がinsertためをロック適用することができるとは思いません。

それともlock tableに切り替えますが、すべてのテーブルを含めることを忘れないでください...

しかし、ほとんどの本番環境でlock row access含む1-1 - ビューのデータベースがあります、あなたはそれらの(またはあなたを使用することができますすでにExplainをチェックしている可能性があります)。

+0

こんにちは@dnoeth。迅速な対応をありがとうございます。それは私がロックがテーブルのレベルにオプティマイザでほとんどの場合に昇格されるように私が探しているものを達成するために 'アクセスtablename'を使用することができます... –

関連する問題