栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

请查看2015年5月7日发布的SQLite版本3.8.10。此版本首次包含
sqldiff.exe
实用程序,

用于计算两个SQLite数据库文件之间的差异。该程序很可能也将成为将来版本的一部分。

sqldiff.exe 命令行工具行应为所有支持的操作系统和提供了几个开关的工作用于改变它的输出行为。用法示例:

sqldiff [options] database1.sqlite database2.sqlite

如果未指定任何选项,则 sqldiff.exe
的输出是将

database1.sqlite
(“源”数据库)转换为
database2.sqlite
(“目标”数据库)的SQL语句。

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


示例命令和输出

我使用了一个简单的键值存储数据库(

db1.sqlite
),并制作了一个副本(
db2.sqlite
)。然后,我将一对键值对插入
db2.sqlite
。之后,我运行以下命令:

sqldiff db1.sqlite db2.sqlite

并得到以下输出:

插入my_table(rowid,“ key”,value)VALUES(1,’D: Test Test.txt’,x’aabbccdd’);
更新my_table_size SET计数器= 1,rowid = 1;

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

sqldiff db2.sqlite db1.sqlite

并得到以下输出:

从my_table的WHERe rowid = 1处删除;
更新my_table_size SET计数器= 0,rowid = 1;


sqldiff下载链接

自2016年1月20日发布SQLite
3.10.2版以来,可直接从SQLite下载页面下载
sqldiff 的32位二进制文​​件。可以在相应操作系统的 sqlite工具 档案中找到它们(请参阅“ 预编译的二进制文件”
部分)。例如,以下是3.31.1版的 sqlite工具 档案的链接:


  • 适用于Linux的SQLite工具
  • 适用于OS X的SQLite工具
  • Windows的SQLite工具

对于3.10.2之前的SQLite版本,SQLite网站托管 sqldiff的 32位二进制文​​件,但没有链接到它们。以下是3.8.10版的
sqldiff 的链接:

  • 适用于Linux的sqldiff
  • 适用于OS X的sqldiff
  • Windows版sqldiff

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



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/391780.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号