4

SQLTransactionを使用する適切な時期はいつですか?

私はそれらをすべてのINSERT、UPDATE、およびDELETEステートメントに使用します。

これは正しい使用法ですか、それとも私は少しやり過ぎですか?

4

3 に答える 3

7

一連のステートメントをアトミックに処理する必要がある場合は、トランザクションを使用します。つまり、すべてが成功してコミットされるか、すべてロールバックされます。

単純なステートメントはすでにアトミックであるため、個々のステートメントごとにトランザクションを明示的に作成する必要はありません。

于 2010-12-10T21:06:21.100 に答える
2

複数のステートメントを実行する予定があり、どこかでエラーが発生した場合にステートメントの結果として生じたすべてのデータ変更をロールバックする予定がある場合にのみ、トランザクションが必要です。単一の update/delete ステートメントをラップする必要はありません。1 つのコマンドでエラーが発生した場合は、フロントエンド コードでエラーをキャッチして処理するだけです。

于 2010-12-10T21:08:12.273 に答える
1

コマンドが単一で発行され、グループではない場合、それはおそらくやり過ぎです。トランザクションは、SQL コマンドをグループ化するために使用されます。グループはすべてのメンバーが成功する必要があります。または、まったく成功しません。

http://en.wikipedia.org/wiki/Atomicity_%28database_systems%29

于 2010-12-10T21:07:50.997 に答える