android 数据库 复制表,Android之SQLite——不同数据库间复制表

需求:

有两个不同的SQLite数据库 A、B,需要将B数据库中的表复制到A数据库中去。

解决办法:

(1)使用软件:SQLite Expert Personal 3;

(2)操作步骤:

a) 在软件SQLite Expert Personal 3中打开 A、B数据库;

b) 选择A数据库,点击鼠标右键,找到“Attach Database”选项,选择该项执行;

c) 在弹出的“文件选择”界面中,选择B数据库文件,点击“确认”按钮;

d) 在弹出的对话框中,先确认选择的数据库文件是否正确。如果正确,点击“OK”按钮;

此时,A、B两个数据库之间的关系已建立。

C:\temp>sqlite3 db1

SQLite version3.6.7Enter".help" forinstructions

Enter SQL statements terminated with a";"sqlite>.tables

t1 tx

sqlite> select *from t1;1|A2|B

sqlite>.q

C:\temp>sqlite3 db2

SQLite version3.6.7Enter".help" forinstructions

Enter SQL statements terminated with a";"sqlite>.tables

sqlite>ATTACH DATABASE db1 as db1;

sqlite> select *from db1.t1;1|A2|B

sqlite> create table t2 as select *from db1.t1;

sqlite> select *from t2;1|A2|B

sqlite>

(3)选择A数据库,在SQLite Expert Personal 3中找到执行SQL语句的“SQL选项卡”界面,执行“create table 表名称 as select * from B.要复制的表的名称;”;

至此,SQLite中不同数据库间复制表操作已完成。

然而,上述操作后会有一个关键问题:B中被复制的表中的主键设置不能被复制。意即,B中有主键的表被复制到A表中后,原来被设置为主键的字段不再为主键字段。注:表创建好后不能修改主键原因,请参考此处:http://stackoverflow.com/questions/946011/sqlite-add-primary-key

解决上述问题的方法:

Example:要复制B数据库中的“B_table_test”表;

a)根据“B_table_test”表的结构,在A表中创建相同表结构的“A_table_test”(包括主键设置);

b)执行上述“解决办法”中的第二步“(2)”中的操作;

c )选择A数据库,执行“INSERT INTO A_table_test SELECT * FROM B.B_table_test”;

至此,SQLite 数据库中表复制时,主键不能被复制问题被解决。

结合以上描述,则可完成Android SQLite 不同数据库之间表复制问题。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值