sqlite3 データベースでいくつかのALTER TABLEステートメントを実行したいと思います。ALTER TABLE の実行中にユーザーがプロセスを強制終了したり、電源が切られたりするとどうなりますか? データベースは破損した中間状態のままになりますか?
1 に答える
2
ドキュメントのトランザクションページから:
SQLite の 1 つのトランザクション内のすべての変更は、ディスクへの変更の書き込みが中断された場合でも、完全に発生するか、まったく発生しないかのいずれかです。
* a program crash, * an operating system crash, or * a power failure.
ドキュメントの別のページから:
データベースを変更するコマンド (基本的には、SELECT 以外の SQL コマンド) は、トランザクションがまだ有効になっていない場合、自動的にトランザクションを開始します。最後のクエリが終了すると、自動的に開始されたトランザクションがコミットされます。
それらを組み合わせると、答えはノーです。停電時にデータベースが破損することはありません。
于 2010-03-21T00:44:37.263 に答える