12

データベース内のいくつかのテーブルに対してカスケード削除を実行したいのですが、何かを削除するときに失敗した場合にどうなるかについて興味があります。すべてがロールバックされますか?

4

3 に答える 3

14

一般的に¹、はい、カスケード削除は元の削除と同じトランザクション(またはサブトランザクション)で実行されます。ただし、SQLサーバーのドキュメントを読む必要があります。

¹例外は、MyISAMテーブルを使用するMySQLなど、トランザクションをサポートしないデータベースを使用している場合です。

于 2008-09-22T10:35:59.497 に答える
4

カスケード削除は確かにアトミックであり、そのプロパティがなければほとんど役に立ちません。それはドキュメントにあります。

于 2008-09-22T10:45:11.970 に答える
1

カスケード イベントはすべてアトミック (つまり、トランザクション内) である必要があることに注意してください。ただし、Joel Coehoorn が指摘しているように、データベースのドキュメントを確認してください。

于 2008-09-22T13:13:06.467 に答える