sqlite插入数据,主键重复怎么办

sqlite插入数据,主键重复怎么办,第1张

1、使用唯一性约束,不过如果是在事务中批量提交时,一个失败将导致整个事务rollback。

2、先用select查询数据是否重复,再决定是否要插入此条数据,实现起来比较麻烦,特别是字段较多时,效率方面未对比测试。

3、使用语句insert or ignore into table (fields) values (values)或replace into table (fields) values (values)此法比较简洁。需要注意的是,当表有一个PRIMARY KEY或UNIQUE索引才有意义。

具体的 *** 作步骤如下:首先,用Access打开mdb文件。导出成txt文件,由于本人的SQLite是在linux下使用,所以编码要改成Unicode,分隔符用逗号分割(逗号分割是为了后期导入到SQLite中)第二步,将文件导入到linux系统下通过终端sqlite3abc.dbSQLiteversion3.6.22Enter".help"forinstructionsEnterSQLstatementsterminatedwitha""sqlite进入一个已经建好的数据库中sqliteCREATETABLEeee(idINTEGERPRIMARYKEY,numberNUMERIC,codeNUMERIC,cityTEXT,citytypeTEXT)创建一个表,这个表的字段和数据类型要和txt文件中的数据和数据类型相对应。sqlite.separator","//设置分割符为逗号,和之前导出设置的分隔符保持一致sqlite.importlist.txteee//将list.txt上的内容导入到表eee中到此,已成功地将批量数据插入到SQLite中了。

方法如下:

以windows系统为例,linux下命令是一样的。

1.安装sqlite工具包

首先要安装有sqlite工具包,怎么判断安装了呢?一个简单的方法就是,在命令行里,敲sqlite3,出现下面信息:

则说明安装了。如果没有安装,可以百度一下。

2.打开一个数据库

在命令行里敲入:sqlite3 数据库,例如:sqlite3 test.db:

如果不往数据库里面添加任何的表,这个数据库等于没有建立,不会在硬盘上产生任何文件,如果数据库已经存在,则会打开这个数据库。如上图,数据库test.db就成功打开了。

3.更改分隔符

如图:

默认的分割符号是|,更改命令是:.separator 分隔符,回车。

4.导入数据

命令:.import 文件名 表名,比如.import G:/data/temp.txt student。

这里要说明的是,数据库的字符编码一般默认是UTF-8,如果数据库的中文字符是乱码,则在编辑好的txt文件用UE转换成UTF-8,再导入即可。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/7948315.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-11
下一篇 2023-04-11

发表评论

登录后才能评论

评论列表(0条)

保存