亚洲十八**毛片,国产a久久精品一区二区三区,色综合桃花网,高清精品在线

技術(shù)知識(shí)
NEWS CENTRE
首頁(yè)
>
新聞中心
>
類似功能的操作:QLite 實(shí)現(xiàn)if not exist
類似功能的操作:QLite 實(shí)現(xiàn)if not exist
2021-08-24 閱讀:2780

這篇文章主要介紹了SQLite 實(shí)現(xiàn)if not exist 類似功能的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。

需要實(shí)現(xiàn):

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')

因?yàn)?SQLite 中不支持SP

補(bǔ)充:sqlite3中NOT IN 不好用的問(wèn)題

在用sqlite3熟悉SQL的時(shí)候遇到了一個(gè)百思不得其解的問(wèn)題,也沒有在google上找到答案。雖然最后用“迂回”的方式碰巧解決了這個(gè)問(wèn)題,但暫時(shí)不清楚原理是什么,目前精力有限,所以暫時(shí)記錄下來(lái),有待繼續(xù)研究。

數(shù)據(jù)庫(kù)是這樣的:

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)
);

該數(shù)據(jù)庫(kù)包含了4個(gè)表:book, movie, member, checkout_item。其中,checkout_item用于保存member對(duì)book和movie的借閱記錄,屬于關(guān)系表。

問(wèn)一:哪些member還沒有借閱記錄?

SQL語(yǔ)句(SQL1)如下:

1SELECT * FROM member WHERE id NOT IN(SELECT member_id FROM checkout_item);

得到了想要的結(jié)果。

問(wèn)二:哪些book沒有被借出?

這看起來(lái)與上一個(gè)是類似的,于是我理所當(dāng)然地運(yùn)行了如下的SQL語(yǔ)句(SQL2):

1SELECT * FROM book WHERE id NOT IN(SELECT book_id FROM checkout_item);

可是——運(yùn)行結(jié)果沒有找到任何記錄! 我看不出SQL2與SQL1這兩條語(yǔ)句有什么差別,難道是book表的問(wèn)題?于是把NOT去掉,運(yùn)行了如下查詢語(yǔ)句:

1SELECT * FROM book WHERE id IN(SELECT book_id FROM checkout_item);

正確返回了被借出的book,其數(shù)量小于book表里的總行數(shù),也就是說(shuō)確實(shí)是有book沒有借出的。

接著google(此處省略沒有營(yíng)養(yǎng)的字),沒找到解決方案??墒?,為什么member可以,book就不可以呢?它們之前有什么不同?仔細(xì)觀察,發(fā)現(xiàn)checkout_item里的book_id和movie_id都加了一個(gè)unique,而member_id則沒有。也許是這個(gè)原因?不用id了,換title試試:

SELECT * FROM book WHERE
 title NOT IN(
 SELECT title FROM book WHERE id IN(
 SELECT book_id FROM checkout_item));

 

確實(shí)很迂回,但至少work了。。。

問(wèn)題原因:當(dāng)NOT碰上NULL

事實(shí)是,我自己的解決方案只不過(guò)是碰巧work,這個(gè)問(wèn)題產(chǎn)生跟unique沒有關(guān)系。邱俊濤的解釋是,“SELECT book_id FROM checkout_item”的結(jié)果中含有null值,導(dǎo)致NOT也返回null。當(dāng)一個(gè)member只借了movie而沒有借book時(shí),產(chǎn)生的checkout_item中book_id就是空的。

解決方案是,在選擇checkout_item里的book_id時(shí),把值為null的book_id去掉:

1SELECT * FROM book WHERE id NOT IN(SELECT book_id FROM checkout_item WHERE book_id IS NOT NULL);

總結(jié)

我在解決這個(gè)問(wèn)題的時(shí)候方向是不對(duì)的,應(yīng)該像調(diào)試程序一樣,去檢查中間結(jié)果。比如,運(yùn)行如下語(yǔ)句,結(jié)果會(huì)包含空行:

1SELECT book_id FROM checkout_item

而運(yùn)行下列語(yǔ)句,結(jié)果不會(huì)包含空行:

1SELECT member_id FROM checkout_item

這才是SQL1與SQL2兩條語(yǔ)句執(zhí)行過(guò)程中的差別。根據(jù)這個(gè)差別去google,更容易找到答案。當(dāng)然了,沒有NULL概念也是我“百思不得其解”的原因。


13560189272
地址:廣州市天河區(qū)黃埔大道西201號(hào)金澤大廈808室
COPYRIFHT ? 2010-2020 廣州市名聯(lián)網(wǎng)絡(luò)科技有限公司 ALL RIGHTS RESERVED 粵ICP備10203057號(hào)
  • 這里是二維碼
亚洲十八**毛片,国产a久久精品一区二区三区,色综合桃花网,高清精品在线
久久日一线二线三线suv| 91在线观看地址| 91超碰这里只有精品国产| 成人免费毛片嘿嘿连载视频| 久久精品国产亚洲一区二区三区| 激情伊人五月天久久综合| 国产婷婷精品av在线| 一卡二卡三卡日韩欧美| 美国一区二区三区在线播放| 色老汉av一区二区三区| 亚洲免费视频中文字幕| 成人h动漫精品一区二区| 欧美日韩亚洲综合| 国产永久精品大片wwwapp| 久久97超碰色| 99r精品视频| 国产河南妇女毛片精品久久久| 亚洲宅男天堂在线观看无病毒| 韩国欧美国产1区| 在线观看国产一区二区| 中文字幕一区二区三区四区不卡| 亚洲欧洲日产国码二区| 亚洲人成网站色在线观看| 久久一区二区三区四区| 欧洲精品中文字幕| 日本三级亚洲精品| 成人福利在线看| 国产大陆a不卡| 亚洲视频狠狠干| 美女网站一区二区| 老司机精品视频一区二区三区| 天天操天天色综合| 91免费视频大全| 中文字幕日本乱码精品影院| 麻豆91在线看| 国产一区二区在线视频| 色综合久久中文字幕| 亚洲a一区二区| 久久精品99国产精品日本| 亚洲一区二区三区免费视频| 国产视频一区不卡| 亚洲综合激情另类小说区| 亚洲欧美另类久久久精品2019| 精品福利一区二区三区免费视频| 欧美专区在线观看一区| 亚洲视频 欧洲视频| 懂色av一区二区三区免费观看| 欧美精品久久一区二区三区| 久久精品亚洲精品国产欧美| 欧美丝袜丝交足nylons| 欧美极品美女视频| 亚洲色图欧洲色图| 91小视频在线免费看| 日韩欧美在线不卡| 久久这里只有精品6| 精品久久人人做人人爽| 国产女人18毛片水真多成人如厕| 欧美成人激情免费网| 久久精品99国产精品| 在线观看视频欧美| 91麻豆精品国产综合久久久久久| 欧美日韩一区在线| 精品成人a区在线观看| 精品成人一区二区| 51精品秘密在线观看| 国产福利一区二区| 欧美一区二区三区免费| 91视频免费观看| 亚洲六月丁香色婷婷综合久久| 国产精品美女一区二区三区| 日韩欧美在线观看一区二区三区| 樱桃视频在线观看一区| 国产一区二区三区av电影| 在线一区二区三区| 91精品国产综合久久香蕉的特点| 亚洲欧美日韩成人高清在线一区| 成人午夜电影久久影院| 国产乱淫av一区二区三区| 国产亚洲综合色| 777色狠狠一区二区三区| 欧美日韩在线观看一区二区| 国产一区二区91| 久久这里只有精品首页| 国产精品进线69影院| 秋霞成人午夜伦在线观看| 一区二区成人在线观看| 91精品国产91久久综合桃花| 亚洲日本va午夜在线影院| 国产在线视视频有精品| 亚洲国产经典视频| 欧美日产在线观看| 久久精品视频免费| 日韩精品一区二区三区三区免费| 国产精品一区二区免费不卡| 欧美一级欧美一级在线播放| 三级在线观看一区二区| 久久五月婷婷丁香社区| 日本va欧美va瓶| 国产一区久久久| 婷婷综合久久一区二区三区| 国产三级精品三级| 色婷婷综合激情| 精品国产第一区二区三区观看体验| 成人免费看视频| 国产精品电影院| 欧美日韩一区 二区 三区 久久精品| 日韩精品专区在线影院重磅| 欧美主播一区二区三区| 国产激情偷乱视频一区二区三区| 色综合久久天天综合网| 欧美一级片在线看| 亚洲第一福利一区| 国产精品国产三级国产有无不卡| 2021久久国产精品不只是精品| 粉嫩13p一区二区三区| 91精品久久久久久久久99蜜臂| 一区二区三区免费网站| 日韩三级视频在线看| 中文字幕巨乱亚洲| 久久av资源网| 一本大道av一区二区在线播放| 亚洲欧美在线aaa| 捆绑调教一区二区三区| 久久日一线二线三线suv| 中文在线免费一区三区高中清不卡| 97精品久久久午夜一区二区三区| 91久久精品一区二区三区| 91精品福利在线| 国产剧情一区在线| 免费观看一级欧美片| 日韩欧美国产一区二区在线播放| 一区二区三区.www| 性做久久久久久久久| 在线视频你懂得一区| 依依成人精品视频| 石原莉奈在线亚洲三区| 国产盗摄精品一区二区三区在线| 亚洲人成精品久久久久| 久久午夜羞羞影院免费观看| 精品伊人久久久久7777人| 国产精品一级二级三级| 久久99精品一区二区三区三区| 国产乱子轮精品视频| 国产精品久久久99| 亚洲人成7777| 亚洲一区在线视频| 国产一区二区调教| 91久久精品国产91性色tv| 一级日本不卡的影视| 播五月开心婷婷综合| 精品污污网站免费看| 91香蕉视频污| 精品一区二区三区免费视频| 欧美成人aa大片| 久久久99精品免费观看| 91精品国模一区二区三区| 蜜臀av性久久久久蜜臀aⅴ四虎| 免费人成在线不卡| 成人v精品蜜桃久久一区| 7777精品久久久大香线蕉| 色哦色哦哦色天天综合| 日韩三级免费观看| 欧美一级视频精品观看| 国产一区日韩二区欧美三区| 偷拍一区二区三区| 国产精品白丝jk白祙喷水网站| 在线观看视频一区二区欧美日韩| 综合在线观看色| 久久久久久久综合日本| 91麻豆高清视频| 粗大黑人巨茎大战欧美成人| 久久青草国产手机看片福利盒子| 欧美美女网站色| 亚洲图片欧美综合| 国产精品久久久久久久浪潮网站| 精品国产91乱码一区二区三区| 久久精品国产亚洲一区二区三区| 成人永久看片免费视频天堂| 亚洲男女一区二区三区| 精品一二三四在线| 日本一区二区在线不卡| 日韩在线卡一卡二| 成人影视亚洲图片在线| 一区二区三区不卡视频| 亚洲国产精品久久人人爱| 国产成人福利片| 国产不卡在线播放| 国产偷国产偷精品高清尤物| 国产精品国产三级国产有无不卡| 91麻豆精东视频| 久久国产欧美日韩精品| 国产精品久久久久久久久久久免费看| 国产精品18久久久| 亚洲国产精品一区二区www在线| 国产欧美日韩精品一区| 中文字幕av一区 二区| 99re6这里只有精品视频在线观看| 国内精品不卡在线| 欧美日韩一级片网站| 韩国视频一区二区|