2014-10-07 168 views
0

UPD:需求即将到来。合并两个数据库

我的朋友使用的是Mnemosine(http://mnemosyne-proj.org/),它是使用sqlite作为db的python程序。移动版本只适用于一个数据库文件,我的朋友已经有好几个了。所以他问我是否可以合并两个数据库。

所以!我有两个具有相同模式但不同数据的sqlite数据库文件。

是否有自动的方式将数据从一个文件包含到另一个文件?我只需要将附加值插入到字典表中,并根据新的ID正确插入其他表中的值。

不幸的是没有外键定义,所以我可能需要首先指定列/表关系。但总的来说,如果我解决关系问题,是否可以合并dbs?

回答

2

您可以打开要合并到的数据库,然后attach the other database

INSERT INTO bar (baz) SELECT baz FROM foo.bar; 
+0

谢谢,但这不是我正在寻找的东西。我正在更新我的问题 – 2014-10-08 07:56:14

+0

您应该能够使用'sqlite3' shell打开数据库并执行此操作。 – 2014-10-08 12:11:39

1

你可以试试这个:

sqlite3的bar.db”使用.dump T1

ATTACH DATABASE "foo.database" AS foo; 

然后,您可以通过使用数据库的名称和一个点前缀来访问其它数据库的表“| grep -v“^ CREATE”| sqlite3 foo.db

这会将表t1的内容从bar.db放入foo.db中的表t1中。

+0

谢谢你的回答。我将调查转储的可能性 – 2014-10-08 07:57:06