2017-07-31 4 views
1

SQLクエリを1回のトランザクションで実行できません。ここに私のクエリはあります:@AdHocプロシージャは複数の文を実行しません

私は最初のクエリだけが実行され、もう一方は実行されないことがわかりました。 @AdHocに関するドキュメントでは、複数のクエリを実行できることが説明されています。 何が問題になりますか?

答えて

1

VoltDBでは、バッチ処理されたDDL文を使用している場合、同じトランザクションまたはバッチ内でオブジェクトを削除および作成することはできません。この変更が他のトランザクションに干渉する可能性がある場合は、この変更を行う前にデータベースを一時停止してから、データベースを再開する必要があります。

この表を使用するストアドプロシージャがある場合は、テーブルを削除する前に、最初に削除する必要があります。その後、テーブルを再作成した後で再作成することができます。複数のプロシージャまたはビューがこのテーブルに依存していて、バッチ数を最小限に抑えようとしている場合は、1つのバッチを使用してすべてを削除し(プロシージャ、ビュー、テーブルから開始)、別のバッチを使用して、表、索引、ビュー、プロシージャ)これは、偶発的なDDLスクリプトが必要な場合に従うパターンです。頻繁にスキーマを変更したり、データを保持する必要がない場合は、開発中に時間を節約することができます。

また、変更の種類によっては、ALTER TABLEを使用することもできます。

関連する問題