문제

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

이용이 가능한 것으로 알고 있습니다 붙이다 이렇게 해야 하는데 한도 머신의 메모리 시스템에 따라 32개 및 64개 데이터베이스.

도움이 되었습니까?

해결책 2

이는 요청 시 수행되며 하루에 여러 번 가능합니다.내가 작동하는 것을 보는 방식은 다음과 같습니다. http://sqlite.1065341.n5.nabble.com/Attempting-to-merge-large-databases-td39548.html 데이터베이스가 대규모 DB로 병합된 경우 쿼리가 수행된 후 대규모 데이터베이스가 삭제됩니다.

다른 팁

에서 요약하자면 나블 포스트 DavidM의 답변에서 :

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

필요에 따라 반복합니다.

메모:추가됨 detach toMerge; 마이크의 의견에 따르면.

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

매우 오래된 스레드이지만 오늘날의 프로그래밍 요구 사항과 관련된 질문입니다.제공된 답변 중 아직 간결하고 쉽고 명확하지 않은 답변이 없기 때문에 여기에 게시합니다.이는 이 페이지에 있는 Google 직원을 위한 것입니다.우리가 가는 GUI:

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

저는 이러한 어려운 작업이 다음과 같은 고대 프로그래밍 기술을 사용하여 해결될 수 있다는 사실을 알고 놀랐습니다.복사 및 붙여 넣기 :)

불쾌하게 생각하지 마시고, 한 개발자가 다른 개발자에게 그러하듯이, 귀하의 아이디어가 매우 비효율적으로 보인다는 점이 유감입니다.제가 보기에는 SQLite 데이터베이스를 통합하는 대신 동일한 데이터베이스 파일 내에 여러 테이블을 저장해야 할 것 같습니다.

그러나 제가 틀렸다면 데이터베이스를 연결한 다음 VIEW를 사용하여 쿼리를 단순화할 수 있을 것 같습니다.또는 메모리 내 테이블을 만들고 모든 데이터를 복사합니다(그러나 이는 특히 대규모 데이터베이스가 있는 경우 성능 측면에서 훨씬 더 나쁩니다).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top