여러 SQLite 데이터베이스를 병합하려면 어떻게해야합니까?
스키마가 모두 동일한 SQLite 데이터베이스가 많은 경우 모든 데이터베이스에서 쿼리를 수행하기 위해 병합하는 가장 좋은 방법은 무엇입니까?
ATTACH 를 사용 하여이 작업을 수행 할 수 있다는 것을 알고 있지만 시스템의 메모리 시스템에 따라 데이터베이스가 32 개 및 64 개로 제한 됩니다.
DavidM의 답변에 있는 Nabble 게시물 에서 요약하면 다음과 같습니다.
attach 'c:\test\b.db3' as toMerge;
BEGIN;
insert into AuditRecords select * from toMerge.AuditRecords;
COMMIT;
detach toMerge;
필요에 따라 반복하십시오.
참고 : detach toMerge;
마이크의 의견에 따라 추가 되었습니다.
이것은 요청에 따라 수행되며 하루에 여러 번 가능합니다. 내가 작동하는 것을 보는 방법은 http://sqlite.1065341.n5.nabble.com/Attempting-to-merge-large-databases-td39548.html 에서와 같이 데이터베이스가 대규모 DB로 병합되고 쿼리가 수행됩니다. 큰 데이터베이스가 삭제되었습니다.
이 병합 작업을 한 번만 수행하면 (더 큰 새 데이터베이스를 만들기 위해) 모든 sqlite 데이터베이스를 반복 한 다음 데이터를 기본 (대형) 데이터베이스에 삽입하는 스크립트 / 프로그램을 만들 수 있습니다.
매우 오래된 스레드이지만 오늘날의 프로그래밍 요구 사항과 관련된 질문입니다. 아직 제공된 답변 중 간결하고, 쉽고, 직설적이지 않기 때문에 여기에 게시합니다. 이것은이 페이지에서 끝나는 Google 직원을위한 것입니다. GUI로 이동 :
- Sqlitestudio 다운로드
Ctrl + O
바로 가기 키 를 사용하여 모든 데이터베이스 파일 추가- 지금로드 된 각 db 파일을 두 번 클릭하여 모두 열기 / 활성화 / 확장
- 재미있는 부분 : 각 테이블을 마우스 오른쪽 버튼으로 클릭하고을 클릭
Copy
한 다음로드 된 데이터베이스 파일 목록에서 대상 데이터베이스로 이동 (또는 필요한 경우 새로 생성)하고 대상 DB를 마우스 오른쪽 버튼으로 클릭하고Paste
이러한 어려운 작업은 복사하여 붙여 넣기라는 고대 프로그래밍 기술을 사용하여 해결할 수 있다는 사실에 놀랐습니다. :)
한 개발자가 다른 개발자와 마찬가지로 불쾌감을주지 않으면 서 귀하의 아이디어가 매우 비효율적으로 보일 수 있습니다. SQLite 데이터베이스를 통합하는 대신 동일한 데이터베이스 파일 내에 여러 테이블을 저장해야 할 것 같습니다.
그러나 내가 착각한다면 데이터베이스를 첨부 한 다음 VIEW를 사용하여 쿼리를 단순화 할 수 있다고 생각합니다. 또는 메모리 내 테이블을 만들고 모든 데이터를 복사합니다 (그러나 특히 큰 데이터베이스가있는 경우 성능이 더 나빠집니다)
참고 URL : https://stackoverflow.com/questions/80801/how-can-i-merge-many-sqlite-databases
'code' 카테고리의 다른 글
NLTK에서 구문 분석을위한 영어 문법 (0) | 2020.11.25 |
---|---|
CSS 선택기에서 / deep / 및 :: shadow는 무엇을 의미합니까? (0) | 2020.11.25 |
단일 명세서에 대한 트랜잭션은 무엇을합니까? (0) | 2020.11.25 |
Cassandra 데이터 모델을 설계 할 때 가장 좋은 방법은 무엇입니까? (0) | 2020.11.25 |
Docker Compose-여러 컨테이너간에 명명 된 볼륨 공유 (0) | 2020.11.24 |