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
为什么在反向编辑后Sqlite校验和不一样?_Sqlite_Checksum - Fatal编程技术网

为什么在反向编辑后Sqlite校验和不一样?

为什么在反向编辑后Sqlite校验和不一样?,sqlite,checksum,Sqlite,Checksum,显然,编辑任何列值都会更改校验和。 但将原始值保存回不会将文件返回到原始校验和 我在之前和之后运行了真空,所以这不是因为缓冲区大小。 我没有任何引用列的索引,并且没有添加或删除行,所以pk索引也不需要更改。 我试着关闭回滚日志,但那是一个单独的文件,所以我并不奇怪它没有效果 我不知道有内部日志或修改日期来解释为什么相同的内容不会产生相同的文件字节 寻找关于文件内部发生了什么的见解来解释这一点,以及是否有办法使其正常运行,我没有看到相关的杂注 允许存在解决此问题的方法,但我没有看到触发任何这些条件

显然,编辑任何列值都会更改校验和。 但将原始值保存回不会将文件返回到原始校验和

我在之前和之后运行了真空,所以这不是因为缓冲区大小。 我没有任何引用列的索引,并且没有添加或删除行,所以pk索引也不需要更改。 我试着关闭回滚日志,但那是一个单独的文件,所以我并不奇怪它没有效果

我不知道有内部日志或修改日期来解释为什么相同的内容不会产生相同的文件字节

寻找关于文件内部发生了什么的见解来解释这一点,以及是否有办法使其正常运行,我没有看到相关的杂注

允许存在解决此问题的方法,但我没有看到触发任何这些条件。。。等等,这是一个相当模糊的原因,因为数据库文件包含了数据,所以其他进程可以检测到数据已更改

数据库文件中还有许多其他内容可以更改,例如页面顺序、B树结构、未使用部分中的随机数据,而在SQL级别上看不到数据的差异

如果要在SQL级别比较数据库,则必须比较该数据的规范SQL表示形式,如.dump输出,或使用专用工具,如dbhash