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



Question:

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 two 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)  


Solution:1

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;  


Solution:2

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.


Note:If u also have question or solution just comment us below or mail us on toontricks1994@gmail.com
Previous
Next Post »