Teradata Databaseは、複文INSERTリクエストと反復INSERTリクエストに対して、文の独立性を提供します。文の独立性により、複文または反復のINSERTリクエストは、トランザクション内の個々の文すべてではなく、トランザクションまたは複文リクエスト内で失敗した文のみをロールバックすることができます。
以下の形式の複文DMLリクエストは、文の独立性をサポートします。
- INSERT; INSERT; INSERT;
- BT; INSERT; INSERT; ET;
- BT; INSERT; INSERT;
- INSERT; INSERT; ET;
- INSERT; COMMIT;
- INSERT; INSERT; COMMIT;
お使いのクライアント ソフトウェアが、トランザクションまたは複文リクエスト内のすべての複文または反復のINSERTリクエストがロールバックしないように、文の独立性をサポートしている必要があります。文の独立性のサポートに関する情報は、お使いのクライアント ソフトウェアの文書を参照してください。
複文INSERTリクエストの結果発生する文データの誤りのほとんどは、トランザクションまたは複文リクエスト内で失敗したリクエストのみをロールバックしますが、データ関連エラーのために複文リクエスト内のすべてのINSERTリクエストがアボートしない限り、トランザクションまたはリクエスト内の文すべてをアボートすることはありません。Teradata Databaseは、この場合もトランザクション自体をロールバックするのではなく、複文リクエストに含まれるINSERTリクエストのみをロールバックします。
文の独立性は、次の複文INSERTデータ エラー タイプをサポートします。
- 列レベルのCHECK制約違反
- データ変換エラー
- SETテーブルの重複行エラー
- プライマリ インデックスの固有性違反
- 参照整合性違反
- セカンダリ インデックスの固有性違反
次のオプションを使用して定義されたテーブルへの複文INSERTリクエストに関しては、文の独立性は有効ではありません。
- トリガー
- ハッシュ インデックス
- 結合インデックス
次のSQL機能についても、文の独立性はサポートされません。
- INSERT ... SELECTリクエスト
- SQLストアド プロシージャ