以下の一連のルールはAS … WITH DATA句にだけ当てはまります。これらのルールはAS … WITH NO DATA句には影響しません。
- AS … WITH DATA句を使用してグローバル一時テーブルを作成することはできません。
- 参照整合性制約をAS … WITH DATA句に指定することはできません。存在していないテーブルに関する前方参照が定義される可能性があり、この定義では参照先のテーブルが作成されるまで、挿入がすべてブロックされてしまうためです。
その代わりに、新しいテーブルを作成した後で、ALTER TABLE文(ALTER TABLE (テーブルの基本的なパラメータ)を参照)を使用して参照整合性制約を追加します。
- エラーが生じて、副クエリーの結果を新しいテーブルに保管することが妨げられると、新しいテーブルの作成はアボートします。
例えば、CREATE TABLE … AS … WITH DATA文をコーディングして、CHECKまたはNOT NULLなどの列制約を指定するとします。制約の結果、subquery の中の行が拒否されると、テーブルの作成はアボートし、システムはリクエスト側に制約違反エラーを返します。