많은 SQLite 데이터베이스를 어떻게 병합할 수 있나요?
해결책 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:
- 다운로드 SQLitestudio
- 다음을 사용하여 모든 데이터베이스 파일을 추가합니다.
Ctrl + O
키보드 단축키 - 현재 로드된 각 db 파일을 두 번 클릭하여 모두 열기/활성화/확장합니다.
- 재미있는 부분:각 테이블을 마우스 오른쪽 버튼으로 클릭하고
Copy
, 그런 다음 로드된 데이터베이스 파일 목록에서 대상 데이터베이스로 이동하고(또는 필요한 경우 새 파일을 생성) 대상 DB를 마우스 오른쪽 버튼으로 클릭하고Paste
저는 이러한 어려운 작업이 다음과 같은 고대 프로그래밍 기술을 사용하여 해결될 수 있다는 사실을 알고 놀랐습니다.복사 및 붙여 넣기 :)
불쾌하게 생각하지 마시고, 한 개발자가 다른 개발자에게 그러하듯이, 귀하의 아이디어가 매우 비효율적으로 보인다는 점이 유감입니다.제가 보기에는 SQLite 데이터베이스를 통합하는 대신 동일한 데이터베이스 파일 내에 여러 테이블을 저장해야 할 것 같습니다.
그러나 제가 틀렸다면 데이터베이스를 연결한 다음 VIEW를 사용하여 쿼리를 단순화할 수 있을 것 같습니다.또는 메모리 내 테이블을 만들고 모든 데이터를 복사합니다(그러나 이는 특히 대규모 데이터베이스가 있는 경우 성능 측면에서 훨씬 더 나쁩니다).