2014-10-07 7 views
0

UPD : 요구 사항이 어디에서 오는지.두 개의 데이터베이스 병합

제 친구는 db로 sqlite를 사용하는 파이썬 프로그램 인 Mnemosine (http://mnemosyne-proj.org/)을 사용하고 있습니다. 모바일 버전은 하나의 데이터베이스 파일에서만 작동하며 친구는 이미 여러 가지 문제가 있습니다. 그래서 그는 두 개의 데이터베이스를 병합 할 수 있는지 물어 보았습니다.

그래서! 동일한 스키마지만 다른 데이터를 가진 두 개의 sqlite db 파일이 있습니다.

한 파일의 데이터를 다른 파일에 포함시키는 자동화 된 방법이 있습니까? 사전 테이블에 추가 값을 삽입하고 새 ID를 기반으로 다른 테이블의 값을 올바르게 삽입하면됩니다.

외래 키가 정의되어 있지 않으므로 먼저 열/테이블 관계를 지정해야합니다. 그러나 일반적으로 관계 문제를 해결하면 dbs를 병합 할 수 있습니까?

답변

2

병합하려는 데이터베이스를 열고 attach the other database을 열 수 있습니다.

INSERT INTO bar (baz) SELECT baz FROM foo.bar; 
+0

감사하지만 이것은 내가 찾고있는 것이 아닙니다. 내 질문을 업데이트하겠습니다. –

+0

'sqlite3' 쉘을 사용하여 데이터베이스를 열고 이렇게 할 수 있어야합니다. –

1

당신이 시도 할 수 :

sqlite3를의 bar.db ".dump T1

ATTACH DATABASE "foo.database" AS foo; 

는 그런 다음 데이터베이스의 이름과 점으로 붙임하여 다른 데이터베이스의 테이블에 액세스 할 수 있습니다 "| grep -v "^ CREATE"| sqlite3 foo.db

그러면 테이블 t1의 내용을 bar.db에서 foo.db의 테이블 t1에 넣습니다.

+0

답변 해 주셔서 감사합니다. 나는 덤프 가능성을 조사 할 것이다. –