歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Android之SQLite—不同數據庫間復制表

需求:

有兩個不同的SQLite數據庫 A、B,需要將B數據庫中的表復制到A數據庫中去。

准備條件:

安裝好adb。

 原理:

首先將用sqlite3打開一個數據庫,然後用attach命令將另一個數據庫引進來,之後就可以就可以用別稱來訪問被引入的數據庫中的表。

案例:


 dictionary中有一個t_words表,我需要將其完整復制到sentences.db中。

操作步驟:

1.首先在終端啟用adb,命令是adb shell,定位到相應的文件。

2.sqlite3 dictionary,打開dictionary數據庫。(提前將dictionary的擴展名去掉,不然後面會出一點問題)。

.schema查看建表的命令。

  1. # sqlite3 dictionary 
  2. SQLite version 3.7.4 
  3. Enter ".help" for instructions 
  4. Enter SQL statements terminated with a ";" 
  5. sqlite> .schema 
  6. CREATE TABLE Android_metadata (locale TEXT); 
  7. CREATE TABLE [t_words] ([english] VARCHAR(30) NOT NULL ON CONFLICT FAIL,[chinese] VARCHAR(100) NOT NULL ON CONFLICT FAIL,CONSTRAINT [english_primary] PRIMARY KEY ([english])); 
  8. sqlite>   
# sqlite3 dictionary
SQLite version 3.7.4
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .schema
CREATE TABLE android_metadata (locale TEXT);
CREATE TABLE [t_words] ([english] VARCHAR(30) NOT NULL ON CONFLICT FAIL,[chinese] VARCHAR(100) NOT NULL ON CONFLICT FAIL,CONSTRAINT [english_primary] PRIMARY KEY ([english]));
sqlite> 

記錄下t_words建表的命令,後面會用到。

3..q命令退出數據庫,sqlite3 sentences.db進入sentences數據庫,用剛才記錄下的命令建一個dictionary中一模一樣的t_words表,.schema看一下是否成功建立;

4.執行attatch database dictionary as dic;之後就可以用dic來引用dictionary數據庫了;

5.執行insert into t_words select * from dic.t_words,等1s,復制完畢。

注意:

1)先創建表再insert而不是直接用

create table t2 as select * from db1.t1;

因為,直接用創建出來的表和原始的表不一樣!

2)sqlite中執行的命令以“;”結束,要記得敲。

Copyright © Linux教程網 All Rights Reserved