加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

SQLite中使用约束解决插入/更新重复问题

发布时间:2020-12-12 20:22:37 所属栏目:百科 来源:网络整理
导读:SQLite中使用约束解决插入/更新重复问题 网址:http://www.cnphp.info/sqlite-conflict-on-update.html 一直以来在使用SQL语句的时候都是力求简洁,把SQL精简到最优化以提高效率。这是做Web程序时养成的习惯。不过,最近在一个c#程序中使用到嵌入式数据库SQLi
conflict-algorithm::= ROLLBACK|ABORT|FAIL|IGNORE|REPLACE

这个是用在新建数据表的时候,如果是在插入或更新语句中使用就可以使用 OR 代替 ON Conflict。

例如: insert or ignore into table (fields) values (values);

或者干脆使用 replace into table (fields) values (values);

replace = insert or replace

很好地解决了更新/插入重复的问题^_^

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

SQLite中使用约束解决插入/更新重复问题网址:http://www.cnphp.info/sqlite-conflict-on-update.html

一直以来在使用SQL语句的时候都是力求简洁,把SQL精简到最优化以提高效率。这是做Web程序时养成的习惯。不过,最近在一个c#程序中使用到嵌入式数据库SQLite,让我对SQL语句的要求更提高了一步。例如,在向数据库中插入新行时,如果违背了某一唯一性约束。那么整个更新过程就会失败。更要命的是如果同时插入1000条、10000条甚至更多条数据的时候,如果仅仅因为某条数据出错,导致整个过程rollback了,似乎在性能上就得不偿失了。

起初我想了一个比较笨的办法,聪明的你可能已经想到了^_^,先用select语句查询是否存在重复,剔除到重复后在插入新数据。对于大批量数据的插入/更新,这的的确确是个笨办法。

后来想到用触发器做这个,效果不错,但为这么个简单的问题就动用触发器似乎也不合理喔。最后在查询手册的过程发现了一条语句可以很好地解决重复问题。

ON CONFLICTconflict-algorithm

    推荐文章
      热点阅读