Как объединить N файлов базы данных SQLite в один, если у db есть основное поле? - PullRequest
0 голосов
/ 13 июля 2010

У меня есть куча файлов базы данных SQLite, и мне нужно объединить их в один большой файл базы данных.

  • Как я могу это сделать?

Добавлена ​​

Исходя из этого , я полагаю, эти три команды должны объединить два дБ в одну.

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

Проблема в том, что в БД есть поле PRIMARY KEY, и я получил это сообщение - «Ошибка: PRIMARY KEY должен быть уникальным».

Это тестовая таблица для БД.

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

Ответы [ 2 ]

3 голосов
/ 12 апреля 2011

Я просто думаю об этом здесь ... (и, вероятно, после того, как все остальные тоже пошли дальше).

Отображение первичного ключа в "NULL" должно привести к желаемому результату (ничего хорошегоесли вы используете его в качестве внешнего ключа где-то еще, поскольку ключ, вероятно, существует, но имеет другое содержимое)

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

фактический тест:

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;
1 голос
/ 13 июля 2010

Я не уверен на 100%, но мне кажется, что я должен прочитать все элементы и вставить элемент (кроме ПЕРВИЧНОГО КЛЮЧА) один за другим в новую базу данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...