开发者

How to merge N SQLite database files into one if db has the primary field?

I have a bunch of SQLite db files, and I need to merge them into one big db files.

  • How can I do that?

Added

Based on this, I guess those three commands should merge t开发者_运维技巧wo db into one.

attach './abc2.db' as toMerge;
insert into test select * from toMerge.test
detach database toMerge

The problem is the db has PRIMARY KEY field, and I got this message - "Error: PRIMARY KEY must be unique".

This is the test table for the db.

CREATE TABLE test (id integer PRIMARY KEY AUTOINCREMENT,value text,goody text)


I'm just thinking off my head here... (and probably after everybody else has moved on, too).

Mapping the primary key to "NULL" should yield the wanted result (no good if you use it as foreign key somewhere else, since the key probably exists, but has different contents)

attach './abc2.db' as toMerge;
insert into test select NULL, value, goody from toMerge.test;
detach database toMerge;

actual test:

sqlite> insert into test select * from toMerge.test;
Error: PRIMARY KEY must be unique
sqlite> insert into test select NULL, value, goody from toMerge.test;
sqlite> detach database toMerge;


I'm not 100% sure, but it seems that I should read all the elements and insert the element (except the PRIMARY KEY) one by one into the new data base.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜