linux比较三个数据库,如何在Linux上比较两个SQLite数据库

请查看2015年5月7日发布的

SQLite Release 3.8.10.此版本首次包含用于计算两个SQLite数据库文件之间差异的

sqldiff.exe utility program.该程序很可能也将成为未来版本的一部分.

sqldiff.exe命令行工具应适用于所有受支持的操作系统,并提供多个用于更改其输出行为的开关.用法示例:

sqldiff [options] database1.sqlite database2.sqlite

如果未指定任何选项,则sqldiff.exe的输出是SQL语句,它将database1.sqlite(“源”数据库)转换为database2.sqlite(“目标”数据库).

但是,也有一些限制.例如,sqldiff.exe实用程序(至少当前)不显示TRIGGER,VIEW或虚拟表中的差异.

示例命令和输出

我拿了一个简单的键值存储数据库(db1.sqlite)并制作完成

它的副本(db2.sqlite).然后我插入一个键值对

db2.sqlite.之后我运行了以下命令:

sqldiff db1.sqlite db2.sqlite

得到以下输出:

INSERT INTO my_table(rowid,”key”,value) VALUES(1,’D:\Test\Test.txt’,x’aabbccdd’);

UPDATE my_table_size SET counter=1 WHERE rowid=1;

将键值对插入my_table后,表格my_table_size由TRIGGER自动更新.然后我再次运行sqldiff.exe,但这次使用db2.sqlite作为第一个参数,db1.sqlite作为第二个参数:

sqldiff db2.sqlite db1.sqlite

得到以下输出:

DELETE FROM my_table WHERE rowid=1;

UPDATE my_table_size SET counter=0 WHERE rowid=1;

sqldiff下载链接

从2016年1月20日发布的SQLite version 3.10.2开始,sqldiff的32位二进制文​​件可以直接从SQLite Download Page下载.可以在相应操作系统的sqlite工具存档中找到它们(请参阅预编译的二进制文件部分).例如,以下是版本3.24.0的sqlite工具存档的链接:

对于版本3.10.2之前的SQLite版本,SQLite网站承载sqldiff的32位二进制文​​件,但不链接到它们.以下是版本3.8.10的sqldiff的链接:

如果你需要64位二进制文​​件,那么你需要download原始资源并自己编译它们. (文件sqldiff.c位于包含源的归档的工具子目录中.)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值