SQLite3,”;“更改表格”;耐久性
我想在sqlite3数据库上运行一些ALTERTABLE语句。如果用户在ALTER TABLE运行时终止进程或断电,会发生什么情况?数据库是否处于损坏的中间状态?来自文档中的页面: 在一个时间内的所有更改 SQLite中的事务要么发生 完全或根本没有,即使 将变更写出来的行为 磁盘被中断SQLite3,”;“更改表格”;耐久性,sql,sqlite,alter-table,Sql,Sqlite,Alter Table,我想在sqlite3数据库上运行一些ALTERTABLE语句。如果用户在ALTER TABLE运行时终止进程或断电,会发生什么情况?数据库是否处于损坏的中间状态?来自文档中的页面: 在一个时间内的所有更改 SQLite中的事务要么发生 完全或根本没有,即使 将变更写出来的行为 磁盘被中断 * a program crash, * an operating system crash, or * a power failure. 和来自: 任何更改数据库的命令 (基本上,任何SQL命令 选择)将自
* a program crash,
* an operating system crash, or
* a power failure.
和来自:
任何更改数据库的命令
(基本上,任何SQL命令
选择)将自动启动
事务处理(如果尚未在中)
效果。自动启动
当
最后一个查询完成
将这些因素结合起来,答案是否定的。停电时,您的数据库不会损坏。完全正确。所有劳动密集型查询(可能还有其他查询)都是在数据库的临时副本(称为日志)上完成的。更改完成后,临时数据库将无缝地替换当前数据库。如果操作被中断,则原始数据库仍然完好无损。这本日记有时,很少,会被落在后面,但这是最基本的。谢谢。我关心的是,ALTER语句是否也受到同样的对待。但是在sqlite3提示符下玩游戏表明它们是。