根据http://www.sqlite.org/fileformat.html,SQLite3维护数据库文件的file change counter
字节24..27
.它独立于文件更改时间,例如,在二进制恢复或回滚后可以更改,而没有任何更改:
$ sqlite3 test.sqlite 'create table test ( test )'
$ od --skip-bytes 24 --read-bytes=4 -tx1 test.sqlite | sed -n '1s/[^[:space:]]*[[:space:]]//p' | tr -d ' '
00000001
$ sqlite3 test.sqlite "insert into test values ( 'hello world');"
$ od --skip-bytes 24 --read-bytes=4 -tx1 test.sqlite | sed -n '1s/[^[:space:]]*[[:space:]]//p' | tr -d ' '
00000002
$ sqlite3 test.sqlite "delete from test;"
$ od --skip-bytes 24 --read-bytes=4 -tx1 test.sqlite | sed -n '1s/[^[:space:]]*[[:space:]]//p' | tr -d ' '
00000003
$ sqlite3 test.sqlite "begin exclusive; insert into test values (1); rollback;"
$ od --skip-bytes 24 --read-bytes=4 -tx1 test.sqlite | sed -n '1s/[^[:space:]]*[[:space:]]//p' | tr -d ' '
00000003
Run Code Online (Sandbox Code Playgroud)
为了真正确保两个数据库文件的转储文件(在"平等",你才能确定.dump
),减少输出到INSERT
报表和排序该结果进行比较(也许是一些加密安全校验和).但这显然有点矫枉过正.
归档时间: |
|
查看次数: |
5092 次 |
最近记录: |