Teradata Databaseは、有効で一貫性があり可用なデータをすべてのユーザーが利用できるようにトランザクションを管理します。トランザクションは、1つずつ送信されて受信されるたびに処理される1つ以上のリクエストで構成される場合があります。各リクエストには必要に応じてロックが適用されます。そのリクエストに含まれる文の種類に応じて、種々の用途のロックが関連するデータベース オブジェクトに設定されます。
文の誤り、デッドロック、権限違反、テーブルの制約違反、または間違ってログオフしたなどの何らかの理由で文が正常に終了しなかったり、処理が時間切れとなった場合には、システムは以下のトランザクション管理手順を実行します。
- トランザクション全体がアボートされる。アボート処理では、次の処理が行なわれます。
- 暗黙のEND TRANSACTIONが実行される。
- そのトランザクションによってデータベースに対して行なわれたすべての変更が、元に戻される。
- そのトランザクションに関連するすべての用途のロックが解除される。
- そのトランザクションによって生成された部分的な累積結果(スプール)が廃棄される。
- 失敗または時間切れの応答が要求元に返される。
複文INSERT文の結果発生する文の誤りのほとんどは、トランザクション全体をアボートします。
文の独立性は、トランザクション全体でなく失敗した個々の文のみをロールバックすることによって複文INSERTエラーを処理する方法です。複文および反復INSERTリクエストを参照してください。
お使いのクライアント ソフトウェアが、トランザクションまたは複文リクエスト内のすべての複文または反復のINSERT文がロールバックしないように、文の独立性をサポートしている必要があります。文の独立性のサポートに関する情報は、お使いのクライアント ソフトウェアの文書を参照してください。