Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.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
Python sqlite3 db写入中断时会发生什么情况?_Python_Sqlite - Fatal编程技术网

Python sqlite3 db写入中断时会发生什么情况?

Python sqlite3 db写入中断时会发生什么情况?,python,sqlite,Python,Sqlite,问题:对SQLITE3DB文件的实际写入是什么时候发生的?如果中断会发生什么情况 信息: 我有一个python程序,我已经用它工作了几周,它使用sqlite3来存储它正在运行的模拟中的大量数据。但有两种情况我很担心 我们最近遇到了很多雷雨,这几次断电,我也在更新文件,以一定的频率写入数据库,为此我必须杀死当前正在运行的模拟线程。在这两种情况下,特别是在前一种情况下,我担心当这个线程被中断时会发生什么。当它从日志文件写入数据库时,如果我碰巧中断了它或失去了电源,该怎么办?难道信息就不能到达那里吗

问题:对SQLITE3DB文件的实际写入是什么时候发生的?如果中断会发生什么情况


信息:

我有一个python程序,我已经用它工作了几周,它使用sqlite3来存储它正在运行的模拟中的大量数据。但有两种情况我很担心

我们最近遇到了很多雷雨,这几次断电,我也在更新文件,以一定的频率写入数据库,为此我必须杀死当前正在运行的模拟线程。在这两种情况下,特别是在前一种情况下,我担心当这个线程被中断时会发生什么。当它从日志文件写入数据库时,如果我碰巧中断了它或失去了电源,该怎么办?难道信息就不能到达那里吗?它会到达那里但会腐败吗?它会损坏整个sqlite3数据库文件吗

基本上,我想知道数据何时真正写入文件,而不仅仅是日志文件。如果这个写入过程由于任何原因没有完成,那么日志和数据库文件会发生什么情况

~n

SQLite使用,因此要么提交所有内容,要么不提交任何内容

如果担心数据库处于无效状态,则需要确保将整个“过渡”状态包装在一个块中

写入日志文件等(包括失败)的详细信息都在文档中。

SQLite使用,因此要么提交所有内容,要么不提交任何内容

如果担心数据库处于无效状态,则需要确保将整个“过渡”状态包装在一个块中


写入日志文件等的详细信息(包括失败)都在文档中。

当你说“全部”或“什么都不”时,这是否意味着如果我有1000-10000条新记录要提交(平均提交的大小),它的提交方式是否与如果我在记录573周围失去电源时,所有记录都不会提交一样?或者它是否提交到记录537,然后其余的就随着断电而丢失了?@Nacrolapser:如果这1000条新记录在一个事务中,那么它们都不会在数据库中结束(除了作为事务日志中的垃圾)。如果每个插入都在事务中,则在失败之前的最后一次有效提交将出现在数据库中。。。“提交”则db需要在该事务中进行所有更新,或者什么也不做。不允许出现中间结果。要么全力以赴,要么一事无成。这正是我想听的。没有腐败,没有部分犯罪。这两种情况都意味着我要花上好几天的时间来编写代码。如果你什么都说,或者什么都不说,这是否意味着如果我有1000-10000条新记录要提交(我平均提交的大小),那么它的提交方式是否就是如果我在记录573周围失去了权限,那么所有记录都不会提交?或者它是否提交到记录537,然后其余的就随着断电而丢失了?@Nacrolapser:如果这1000条新记录在一个事务中,那么它们都不会在数据库中结束(除了作为事务日志中的垃圾)。如果每个插入都在事务中,则在失败之前的最后一次有效提交将出现在数据库中。。。“提交”则db需要在该事务中进行所有更新,或者什么也不做。不允许出现中间结果。要么全力以赴,要么一事无成。这正是我想听的。没有腐败,没有部分犯罪。两者都意味着我要花上好几天的时间编写代码。