it-swarm-ru.tech

Как я могу объединить много баз данных SQLite?

Если у меня есть большое количество баз данных SQLite, все с одной и той же схемой, каков наилучший способ объединить их для выполнения запроса по всем базам данных? 

Я знаю, что для этого можно использовать ПРИСОЕДИНИТЬ , но он имеет предел 32 и 64 баз данных в зависимости от системы памяти на машине.

56
DavidM

Это будет сделано по требованию, возможно несколько раз в день. Я бы увидел, как это работает, как в http://sqlite.1065341.n5.nabble.com/Attempting-to-merge-large-databases-td39548.html где базы данных объединены в большую БД , запрос выполнен, а затем большая база данных удалена.

16
DavidM

Подводя итоги из Nabble post в ответе DavidM:

attach 'c:\test\b.db3' as toMerge;           
BEGIN; 
insert into AuditRecords select * from toMerge.AuditRecords; 
COMMIT; 
detach toMerge;

Повторите по мере необходимости.

Примечание: добавлено detach toMerge; согласно комментарию Майка.

59
dfrankow

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

1
Espo

Хотя это очень старая тема, это все еще актуальный вопрос в сегодняшних потребностях программирования. Я публикую это здесь, потому что ни один из предоставленных ответов пока не является кратким, простым и понятным. Это ради Googlers, которые в конечном итоге на этой странице. GUI мы идем:

  1. Скачать Sqlitestudio
  2. Добавьте все файлы базы данных с помощью сочетания клавиш Ctrl + O
  3. Дважды щелкните каждый теперь загруженный файл БД, чтобы открыть/активировать/развернуть их все
  4. Интересная часть: просто щелкните правой кнопкой мыши по каждой из таблиц и выберите Copy, а затем перейдите к целевой базе данных в списке загруженных файлов базы данных (или создайте новую, если требуется) и щелкните правой кнопкой мыши на целевой базе данных и выберите на Paste

Я был поражен, осознав, что такую ​​сложную задачу можно решить с помощью древнего навыка программирования под названием: копировать и вставить :)

0
Damilola Olowookere