本文主要介绍SQLite的操作来实现if不存在的类似功能,有很好的参考价值,希望对大家有所帮助。来和边肖一起看看。
需要实现:
如果不存在(从错误配置中选择*,其中类型='重试等待秒')
开始
插入错误配置(类型,值1)
值(' RetryWaitSeconds ',' 3 ')
结束
仅使用:
插入错误配置(类型,值1)
选择“重试等待秒”、“3”
其中不存在(从错误配置中选择*,其中类型='重试等待秒')
因为SQLite不支持SP
补充:sqlite3中NOT IN的问题不好用
用sqlite3熟悉SQL的时候遇到了一个莫名其妙的问题,在google上没有找到答案。虽然这个问题最后碰巧通过“迂回”的方式解决了,但暂时不清楚原理是什么,目前精力有限,暂时记录下来,需要进一步研究。
数据库是这样的:
创建表格簿(
id整数主键,
标题文本,
唯一(标题)
);
创建表签出_项目(
member_id整数,
book_id整数,
movie_id整数,
冲突替换时的唯一性(member_id,book_id,movie_id)
唯一(book_id),
唯一(电影id)
);
创建表成员(
id整数主键,
姓名文本,
唯一(名称)
);
创建表格电影(
id整数主键,
标题文本,
唯一(标题)
);
该数据库包含四个表:书,电影,成员和结帐_项目。其中,checkout_item用于按成员保存图书和电影的借阅记录,属于关系表。
问题1:哪些会员没有借阅记录?
SQL语句(SQL1)如下:
1选择* from会员id不在(选择membe唐山网络公司r _ id FROM check out _ item);
取得了预期的效果。
Q2:哪本书没有借出去?
这看起来与前一个相似,所以我自然运行了下面的SQL语句(SQL2):
1从id不在的图书中选择*(从结帐项中选择图书id);
但是——的运行结果没有发现记录!我看不出SQL2和SQL1有什么区别。是书桌吗?然后删除NOT,并运行以下查询语句:
1从id为IN的图书中选择*(从结帐项中选择图书id);
借出的书归还正确,数量小于书单上的书总数,也就是说还有书没有借出。
然后谷歌(这里省略了没有营养这个词)没有找到解决办法。然而,为什么一本书不能工作,而一个成员可以?他们之前有什么区别?仔细观察发现,book_id和movie_id在checkout_item中都添加了唯一性,而member_id没有。也许这就是原因?不要使用id,请尝试更改标题:
从书里选择*
标题不在(