it-swarm-korea.com

많은 SQLite 데이터베이스를 병합하려면 어떻게해야합니까?

모두 동일한 스키마를 가진 많은 SQLite 데이터베이스가있는 경우 모든 데이터베이스에서 쿼리를 수행하기 위해 데이터베이스를 병합하는 가장 좋은 방법은 무엇입니까?

ATTACH 을 사용하면 가능하지만 메모리 시스템에 따라 한계 32 및 64 데이터베이스가 있습니다. 기계에.

63
DavidM

이것은 하루에 여러 번 가능할 때 필요할 때 수행됩니다. 내가 작동하는 방식은 http://sqlite.1065341.n5.nabble.com/Attempting-to-merge-large-databases-td39548.html 에서와 같습니다. 큰 DB, 쿼리 수행 후 큰 데이터베이스가 삭제되었습니다.

18
DavidM

DavidM의 답변에서 Nabble post 를 요약하면 다음과 같습니다.

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

필요에 따라 반복하십시오.

참고 : 마이크의 설명에 따라 detach toMerge;가 추가되었습니다.

64
dfrankow

이 더 큰 병합 데이터베이스를 작성하기 위해이 병합 조작을 한 번만 수행해야하는 경우 모든 sqlite 데이터베이스를 반복하고 데이터를 기본 (큰) 데이터베이스에 삽입하는 스크립트/프로그램을 작성할 수 있습니다.

1
Espo

매우 오래된 스레드이지만 오늘날의 프로그래밍 요구에서 여전히 관련 질문입니다. 아직 제공된 답변 중 어느 것도 간결하고 쉽고 정확하지 않기 때문에 여기에 게시하고 있습니다. 이것은이 페이지에서 끝나는 Google 직원을위한 것입니다. 우리가 간다 GUI :

  1. 다운로드 Sqlitestudio
  2. Ctrl + O 키보드 단축키를 사용하여 모든 데이터베이스 파일을 추가하십시오.
  3. 지금로드 된 각 db 파일을 두 번 클릭하여 모두 열거 나 활성화/확장하십시오
  4. 재미있는 부분 : 각 테이블을 마우스 오른쪽 버튼으로 클릭하고 Copy를 클릭 한 다음로드 된 데이터베이스 파일 목록에서 대상 데이터베이스로 이동하거나 필요한 경우 새 데이터베이스를 생성하고 마우스 오른쪽 버튼을 클릭하십시오. 대상 DB를 클릭하고 Paste를 클릭하십시오.

복사 및 붙여 넣기라는 고대 프로그래밍 기술을 사용하여 이러한 어려운 작업을 해결할 수 있음을 알게되어 기뻤습니다. :)

1
Damilola Olowookere