sqlite数据库 大量插入数据时如何避免重复插入(易语言,做好用sql语句写下)
如果先查询下 qq 是否存在 再插入的话 效率比较低。
插入大量数据的话 (如果存在就更新,不存在就插入) 该如何解决? 展开
///sqlite数据表建立唯一限制就行了么
///sql代码如下:
CREATE TABLE "main"."film" (
"filmno" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
"filmname" TEXT(100),
"language" TEXT(10),
"type" TEXT(10),
CONSTRAINT "不重复规则" UNIQUE ("filmname", "language") ON CONFLICT REPLACE/*就这段是重点*/
)
;
大哥看不懂啊,能否举个例子,,我用的易语言
就是你在建数据表的时候就用上面的代码写到表里面,以后直接插入就行了啊
看来你还是不懂.. 给你个样例吧..
源码如下;测试成功
.版本 2
.支持库 sqlite3
.支持库 spec
.子程序 __启动窗口_创建完毕
.局部变量 ku, Sqlite数据库
.局部变量 biao, Sqlite表
.局部变量 sql, 文本型
.局部变量 jg, 文本型, , "0"
.局部变量 a, 整数型
ku.打开 (取运行目录 () + “\test.db”, 真)
sql = “CREATE TABLE qqlist (qq text(15),mm TEXT(20),CONSTRAINT '不重复规则' UNIQUE (qq) ON CONFLICT REPLACE)”
调试输出 (ku.执行SQL语句 (sql)) ' -------------创建表,并建立重复替换规则
调试输出 (biao.打开 (“qqlist”, ku))
调试输出 (biao.插入 ()) ' ------------------插入第一条数据
调试输出 (biao.写字段值 (“qq”, “12345678”))
调试输出 (biao.写字段值 (“mm”, “12345678”))
调试输出 (biao.提交 ())
调试输出 (biao.插入 ()) ' ------------------插入相同值,进行密码替换更新
调试输出 (biao.写字段值 (“qq”, “12345678”))
调试输出 (biao.写字段值 (“mm”, “00000000”))
调试输出 (biao.提交 ())
调试输出 (biao.取记录个数 ()) ' ------------验证记录总数
jg = biao.取所有记录 (假) ' ---------------提取所有记录(如果不重复规则不起作用的话现在应该有两条数据,但是执行结果显示只有一条数据,说明规则成立.)
.计次循环首 (取数组下标 (jg, 1), a)
调试输出 (jg [a] [1], jg [a] [2]) ' ------------逐一显示所有记录
.计次循环尾 ()
广告 您可能关注的内容 |