Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQLite3,”;“更改表格”;耐久性_Sql_Sqlite_Alter Table - Fatal编程技术网

SQLite3,”;“更改表格”;耐久性

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命令 选择)将自

我想在sqlite3数据库上运行一些ALTERTABLE语句。如果用户在ALTER TABLE运行时终止进程或断电,会发生什么情况?数据库是否处于损坏的中间状态?

来自文档中的页面:

在一个时间内的所有更改 SQLite中的事务要么发生 完全或根本没有,即使 将变更写出来的行为 磁盘被中断

* a program crash,
* an operating system crash, or
* a power failure.
和来自:

任何更改数据库的命令 (基本上,任何SQL命令 选择)将自动启动 事务处理(如果尚未在中) 效果。自动启动 当 最后一个查询完成


将这些因素结合起来,答案是否定的。停电时,您的数据库不会损坏。

完全正确。所有劳动密集型查询(可能还有其他查询)都是在数据库的临时副本(称为日志)上完成的。更改完成后,临时数据库将无缝地替换当前数据库。如果操作被中断,则原始数据库仍然完好无损。这本日记有时,很少,会被落在后面,但这是最基本的。谢谢。我关心的是,ALTER语句是否也受到同样的对待。但是在sqlite3提示符下玩游戏表明它们是。