SQLite实现如果不存在类似函数的操作
  • 作者:admin
  • 发表时间:2021-04-21 07:51
  • 来源:未知

本文主要介绍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,请尝试更改标题:

从书里选择*

标题不在(