it-swarm-pt.tech

Como posso mesclar muitos bancos de dados SQLite?

Se eu tiver um grande número de bancos de dados SQLite, todos com o mesmo esquema, qual é a melhor maneira de mesclá-los para executar uma consulta em todos os bancos de dados? 

Eu sei que é possível usar ATTACH para fazer isso, mas tem um limite de 32 e 64 bancos de dados, dependendo do sistema de memória na máquina.

56
DavidM

Isso seria feito sob demanda, possível várias vezes ao dia. A maneira como eu a veria funcionando é como em http://sqlite.1065341.n5.nabble.com/Attempting-to-merge-large-databases-td39548.html onde os bancos de dados são mesclados em um grande banco de dados , a consulta executada e, em seguida, o banco de dados grande excluído.

16
DavidM

Para resumir do Nabble post na resposta de DavidM:

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

Repita conforme necessário.

Nota: adicionado detach toMerge; como comentário de mike.

59
dfrankow

Se você só precisa fazer essa operação de mesclagem uma vez (para criar um novo banco de dados maior), você pode criar um script/programa que faça o loop de todos os bancos de dados sqlite e insira os dados no banco de dados principal (grande).

1
Espo

Embora seja um segmento muito antigo, essa ainda é uma questão relevante nas necessidades de programação de hoje. Estou postando isso aqui porque nenhuma das respostas fornecidas é concisa, fácil e direta. Isso é para os Googlers que acabam nessa página. GUI vamos nós:

  1. Download Sqlitestudio
  2. Adicione todos os seus arquivos de banco de dados usando o atalho de teclado Ctrl + O
  3. Clique duas vezes em cada arquivo db carregado para abrir/ativar/expandir todos
  4. Parte divertida: basta clicar com o botão direito do mouse em cada uma das tabelas e clicar em Copy e, em seguida, ir para o banco de dados de destino na lista de arquivos de banco de dados carregados (ou criar um novo se necessário) e clicar com o botão direito no banco de dados de destino e clicar em Paste

Fiquei impressionado ao perceber que uma tarefa tão assustadora pode ser resolvida usando a antiga habilidade de programação chamada: copy-and-paste :)

0
Damilola Olowookere