sqlite3导入数据,有多少人用过?


我不知道有多少用过sqlite3的数据库,我现在遇到一个问题,调用sqlite3.dll创建内存数据库,并且建一个表,然后我要通过txt文本导入数据到这个表中,问题就在儿,能过sqlite3_exec这些函数执行像".import", ".separator"这些操作都是不成功,网上关于这类解决方案几乎为0,所以请教各位有过类似经验的高手们,我该怎么实现这些操作呢?谢谢

13 个解决方案

#1


都没人用吗?不会吧

#2


通常都是自己解析文本文件,然后再插入到数据库

#3


引用 2 楼  的回复:
通常都是自己解析文本文件,然后再插入到数据库


你的意思是先从文件读数据,然后再insert到表里?那这个工程量可大了,我一个文本最少也得1G大小,sqlite有没有像ms-sql那样支持大容量插入的?

#4


问题仍未解决,继续追问~~

#5


····把txt里的内容解析,然后insert进吧。随便用python写个脚本导入就行

#6


sqlite还是很好用的

#7


sqlite只支持标准SQL语法的,专用的语句肯定是不支持的

#8


引用 5 楼  的回复:
····把txt里的内容解析,然后insert进吧。随便用python写个脚本导入就行


关键是我文本还有有点大,基本都是1G以上的,这样解析出来再insert,我觉得效率会很低吧,其实我就是想问问大家有没有什么高效一点的方法

#9


引用 7 楼  的回复:
sqlite只支持标准SQL语法的,专用的语句肯定是不支持的


那像我说的那样的需要对文本读取格式设置该用什么方法好呢?

#10


如果类似下面这样的命令不能成功:

sqlite> .separator ','
sqlite> .import yourtextfilename.txt yourtablename


那么估计是yourtextfilename.txt中,有数据不符合yourtablename的约束条件。比如主键的唯一性没有得到满足,就像这样:
1 abc ...
2 cde ...
2 def ...

所以,建议:
1. 在import之前,最好自己用数据表的约束条件,检查一下自己的文本文件。
2. 先用小量数据试验一下。

sqlite好像就是这样的,别的大数据库碰到不符合约束条件的记录,可以skip。

#11


引用 10 楼  的回复:
如果类似下面这样的命令不能成功:

SQL code


sqlite> .separator ','
sqlite> .import yourtextfilename.txt yourtablename



那么估计是yourtextfilename.txt中,有数据不符合yourtablename的约束条件。比如主键的唯一性没有得到满足,就像这样:
1 abc ...
……


不是txt文本的问题,是这样的语句根本就执行不成功,不支持

#12


楼主你解决了吗?我现在也遇到这样的问题了,在import导入txt文本的时候,报错error:datatype mismatch。也就是主键的问题,不设置主键导入成功,设置主键,导入就报错。有谁遇到过这样的问题没?

#13


引用 12 楼 zangyana 的回复:
楼主你解决了吗?我现在也遇到这样的问题了,在import导入txt文本的时候,报错error:datatype mismatch。也就是主键的问题,不设置主键导入成功,设置主键,导入就报错。有谁遇到过这样的问题没?



有主键的时候主键对应的位置也必须有值
智能推荐

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
© 2014-2019 ITdaan.com 粤ICP备14056181号  

赞助商广告