INSERT処理は、次のアクションを実行します。
- 行キー、パーティション、またはテーブルにWRITEロックを適宜設定します。
- INSERT操作全体を、all-or-nothing操作として実行します。トランザクションは、すべての行が正常に挿入されるか、1行も挿入されないかのどちらかです。
これにより、部分的に挿入されることを防いでいます。
セッション モード | 失敗したINSERT結果 |
---|---|
ANSI | エラーのあるリクエストのみをロールバックします。 |
Teradata | 失敗したリクエストを含むトランザクション全体をロールバックします。 |
文の独立性に対応する複文INSERTリクエスト ロールバックのルールでは、トランザクションまたは複文リクエスト内のINSERTエラーを、より緩やかに処理できるようにすることもよくあります。文の独立性が関係する状況で失敗したINSERT操作の詳細については、複文および反復INSERTリクエストを参照してください。
FALLBACKを指定して定義されたテーブルや、セカンダリ インデックス、結合インデックスまたはハッシュ インデックスを付けて定義されたテーブルに対するINSERT操作は、処理時間が長くかかります。これは、テーブルのFALLBACKコピーやインデックスも変更する必要があるためです。