您的位置:首页 > 数据库

WinCE下将SQLite数据库导入到另外一个SQLite数据库

2013-07-23 18:55 387 查看
WinCE下将SQLite数据库导入到另外一个SQLite数据库

在嵌入式数据库当中,SQLite的使用应该算是比较多的了。而就在最近的项目中使用到了。
由于没有实现远程数据库同步功能,因此只有靠下载或者上传文件的方式将数据库同步了。将下载下来的DB3文件的表和数据全部导入到本地数据库当中。同样都是SQLite,处理起来还是比较方便的。分为以下几个步骤:
1. 将源(下载下来的DB3文件)数据库Attach到已经建立连接的本地目标数据库

ATTACH DATABASE 'DB3_file_name' AS SourcesDataBase
2. 由于不知道源数据库中有哪些表,因此需要将表明保存下来。使用的语句如下:

select * from SourcesDataBase.sqlite_master WHERE type = 'table'
对于表来说,type 字段永远是 ‘table’,name 字段永远是表的名字

3. 在上一步中,已经将源数据库表明保存下来了,这一步要做的就是检查目标数据库库中是否已经存在这个表了,如果存在,可以选择先delete,在insert,也可以直接insert。对于目标数据库中如果没有此表,则可以使用create创建。

select count(*) from [main.]sqlite_master where type='table' and name='table_name';--这里判断一下目标数据库中是否已经存在此表

delete from [main.]table_name;--完全更新的话可以加入这句

INSERT INTO [main.]table_name SELECT * FROM SourcesDataBase.table_name;--将源数据库中的数据copy到目标数据库

CREATE TABLE [main.]table_name AS SELECT * FROM SourcesDataBase.table_name;--创建,并copy数据到目标数据库
4. 好了,就这么简单,数据库导入完毕。这个时候不要忘了DETACH

DETACH DATABASE SourcesDataBase
在以上遇到一些问题,这么判断PRIMARY KEY, 因为我在使用的时候发现,copy的时候,将PRIMARY KEY也一同复制了,如果是一个自增的index,insert进去的数据就不正确了,可能会出现两个相同的index了。

还有就是在第三步的最后一个语句里面,我如果只想创建表,而不复制里面的数据,该这么写呢?

欢迎大家一起讨论一下。

阅读(899) | 评论(0) | 转发(0) |

0
上一篇:WinCE下编写USB client驱动时会用到的一些API

下一篇:使用ActiveSync同步WinCE设备,并在局域网中调试网络程序

相关热门文章

sql 基本语句

sql 基本语句

7月21日嵌入式远程管理小组汇...

expdp常见的管理

网络游戏中的数据包设计与定义...

linux守护进程的几个关键地方...

stagefright与opencore对比

嵌入式Linux之我行——u-boot-...

嵌入式Linux之我行——内核、...

android的logcat详细用法

如何编写一个C程序实现将字符...

C程序能不能在main函数之前调...

看一个程序调用了哪些动态库用...

回复不了你啊,咋,威望值不够...

mysql的medium.cnf在哪里?...

给主人留下些什么吧!~~

评论热议
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: