私はSQLiteを新しく導入しましたが、C APIを使用してトランザクションを実行することに頭を抱えようとしています。この場合、2つのテーブルで2つの一貫した更新を実行するだけで済みます。SQLite C API:実行中のトランザクション、エラーへの応答
最も簡単な方法はthis tutorialのようです。 sqlite3_exec
のコマンドを組み合わせて使用すると、BEGIN
で始まり、COMMIT
で終わります。したがって、ROLLBACK
を実行することはありません。また、エラーが発生した場合、自動的にロールバックするSQLiteを使用していると考えられます。
問題は、the manualのトランザクションエラー処理に関するセクションはかなり複雑であり、これは良いアプローチであることはわかりません。手動でロールバックすることも提案されています。
次のアプローチは、単一のBEGIN
を実行し、各ステートメントを個別に実行してエラーをチェックし、最後にCOMMIT
またはROLLBACK
を実行することです。これは実際にはそれなりに良いのでしょうか?