SQLite 实现if not exist 类似功能的技巧
发布时间:2023-10-27 13:25:55 所属栏目:资讯 来源:
导读:这篇文章主要介绍了SQLite 实现if not exist 类似功能的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧。
需要实现:
if not exists(select * from ErrorConfig where Type='Retr
需要实现:
if not exists(select * from ErrorConfig where Type='Retr
这篇文章主要介绍了SQLite 实现if not exist 类似功能的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧。 需要实现: if not exists(select * from ErrorConfig where Type='RetryWaitSeconds') begin insert into ErrorConfig(Type,Value1) values('RetryWaitSeconds','3') end 只能用: insert into ErrorConfig(Type,Value1) select 'RetryWaitSeconds','3' where not exists(select * from ErrorConfig where Type='RetryWaitSeconds') 因为 !QLite 中不支持SP 补充:sqlite3中NOT IN 不好用的问题 在用sqlite3熟悉SQL的时候遇到了一个百思不得其解的问题,也没有在google上找到答案。虽然最后用“迂回”的方式碰巧解决了这个问题,但暂时不清楚原理是什么,目前精力有限,所以暂时记录下来,有待继续研究。 数据库是这样的: CREATE TABLE book ( id integer primary key, title text, unique(title) ); CREATE TABLE checkout_item ( member_id integer, book_id integer, movie_id integer, unique(member_id, book_id, movie_id) on conflict replace, unique(book_id), unique(movie_id) ); CREATE TABLE member ( id integer primary key, name text, unique(name) ); CREATE TABLE movie ( id integer primary key, title text, unique(title) ); 该数据库包含了4个表:book, movie, member, checkout_item。其中,checkout_item用于保存member对book和movie的借阅记录,属于关系表。 总结 我在解决这个问题的时候方向是不对的,应该像调试程序一样,去检查中间结果。比如,运行如下语句,结果会包含空行: 1SELECT book_id FROM checkout_item 而运行下列语句,结果不会包含空行: 1SELECT member_id FROM checkout_item 这才是SQL1与SQL2两条语句执行过程中的差别。根据这个差别去google,更容易找到答案。当然了,没有NULL概念也是我“百思不得其解”的原因。 (编辑:马鞍山站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐