私のSQLiteベースのアプリケーションは現在、ロールバックを可能にするためとパフォーマンスを向上させるための両方でトランザクションを使用しています。すべてのトランザクションをセーブポイントに置き換えることを検討しています。その理由は、アプリケーションがマルチスレッドであり(はい、sqliteスレッドセーフになるように構成されている)、場合によっては、トランザクションが2つのスレッドによって同時に(同じデータベース上で)開始される可能性があるためです。
- それをしない理由はありますか?
- 知っておく必要のある落とし穴はありますか?
BEGIN、、をCOMMIT、、に置き換えるだけですか?ROLLBACKSAVEPOINT xyzRELEASE SAVEPOINT xyzROLLBACK TO SAVEPOINT xyz