2012-04-29 2 views
2

하나의 테이블과 다른 데이터베이스가있는 데이터베이스가 하나 있습니다. 이 첫 번째 데이터베이스에서 첫 번째 데이터베이스 (간단한 테이블 사용)에서 두 번째 테이블로 복사해야합니다. (두 번째 데이터베이스에서는 fts3 테이블이어야합니다.) 따라서 두 데이터베이스를 모두 열고 두 번째 db에 새 fts3을 만들고 select -> insert 쿼리를 통해 첫 번째 데이터베이스에서 두 번째 데이터베이스로 모든 데이터를 복사 할 수 있습니다. 그러나 더 빠르고 더 잘할 수있는 다른 방법이 있습니까?한 데이터베이스에서 다른 테이블로 테이블을 빨리 복사하는 방법

답변

5

를 지금까지 내가 당신이 설명하는 방법 (즉 INSERT INTO db2.tbl SELECT * FROM db1.tbl)이 일반적으로 가장 효율적이어야한다 알고.

당신이 할 수있는 일은 sqlite를 빨리 수정하는 것입니다. 마음에 오는 첫번째 것은 journaling 비활성화하는 것입니다 (일반적으로 위험하지만, 여전히 데이터의 원본이 같은 시나리오에서 허용되어야합니다) :

pragma PRAGMA journal_mode=OFF: 

당신은 또한 synchronous pragma을 해제 할 수 있습니다를도 (위험) :

PRAGMA synchronous=OFF; 

이 당신이 차이를 만들 수있는 놀 수있는 하나 또는 두 개 더 프라 그마가 있지만 내가 언급이 가장 큰 영향을 미칠 것이라 생각합니다.

복사 후에는 해당 pragma를 원래 값으로 복원해야합니다.

3

그래, 그게 최선의 방법입니다. 데이터를 테이블을 만든 다음 삽입 :

INSERT INTO `toDB`.`tableName` SELECT * FROM `fromDB`.`tableName` 
+0

HI @bArmageddon 내 sdcard에 하나의 sqlite 데이터베이스가 있고 안드로이드에 내 응용 프로그램 데이터베이스에 테이블을 복사하고 싶습니다. –

관련 문제