亚洲综合av网_中文字幕一区二区三区在线观看_91免费看片在线观看_久久精品久久精品亚洲人

技術知識
NEWS CENTRE
首頁
>
新聞中心
>
類似功能的操作:QLite 實現if not exist
類似功能的操作:QLite 實現if not exist
2021-08-24 閱讀:2868

這篇文章主要介紹了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')

因為 SQLite 中不支持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的借閱記錄,屬于關系表。

問一:哪些member還沒有借閱記錄?

SQL語句(SQL1)如下:

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

得到了想要的結果。

問二:哪些book沒有被借出?

這看起來與上一個是類似的,于是我理所當然地運行了如下的SQL語句(SQL2):

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

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

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

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

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

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

 

確實很迂回,但至少work了。。。

問題原因:當NOT碰上NULL

事實是,我自己的解決方案只不過是碰巧work,這個問題產生跟unique沒有關系。邱俊濤的解釋是,“SELECT book_id FROM checkout_item”的結果中含有null值,導致NOT也返回null。當一個member只借了movie而沒有借book時,產生的checkout_item中book_id就是空的。

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

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

總結

我在解決這個問題的時候方向是不對的,應該像調試程序一樣,去檢查中間結果。比如,運行如下語句,結果會包含空行:

1SELECT book_id FROM checkout_item

而運行下列語句,結果不會包含空行:

1SELECT member_id FROM checkout_item

這才是SQL1與SQL2兩條語句執行過程中的差別。根據這個差別去google,更容易找到答案。當然了,沒有NULL概念也是我“百思不得其解”的原因。


13560189272
地址:廣州市天河區黃埔大道西201號金澤大廈808室
COPYRIFHT ? 2010-2020 廣州市名聯網絡科技有限公司 ALL RIGHTS RESERVED 粵ICP備10203057號
  • 這里是二維碼
亚洲综合av网_中文字幕一区二区三区在线观看_91免费看片在线观看_久久精品久久精品亚洲人
国产欧美日韩综合| 一区二区三区久久久| 国产精品123| 日韩精品每日更新| 亚洲高清视频的网址| 136国产福利精品导航| 国产午夜亚洲精品理论片色戒| 欧美成人精品高清在线播放| 欧美一区二区三区色| 69久久99精品久久久久婷婷| 欧美一区二区不卡视频| 欧美一区二区久久| 日韩一区二区中文字幕| 日韩欧美你懂的| 精品国产乱子伦一区| 久久亚洲综合av| 国产欧美精品一区aⅴ影院| 日本一区二区三区四区| 国产精品久久久久桃色tv| 亚洲色图制服丝袜| 亚洲综合免费观看高清在线观看| 亚洲男人的天堂av| 亚洲成人在线免费| 老司机一区二区| 国产高清无密码一区二区三区| 成人18精品视频| 欧美日韩在线综合| 精品国产精品网麻豆系列| 国产精品网站一区| 亚洲黄色录像片| 美日韩一区二区三区| 国产不卡视频一区| 色狠狠综合天天综合综合| 欧美精品少妇一区二区三区| 欧美精品一区二区在线观看| 成人欧美一区二区三区小说| 亚洲福利国产精品| 国产风韵犹存在线视精品| 色婷婷国产精品综合在线观看| 欧美精品v日韩精品v韩国精品v| 日韩精品影音先锋| 最新中文字幕一区二区三区| 欧美aa在线视频| 97久久超碰精品国产| 日韩欧美一区二区不卡| 中文字幕五月欧美| 麻豆91在线看| 99国产精品久久久久久久久久久| 欧美一级一级性生活免费录像| 中文字幕一区二区三区在线播放| 日产欧产美韩系列久久99| 成人毛片视频在线观看| 欧美一区二区视频在线观看2020 | 成人教育av在线| 91精品国产福利在线观看| 国产精品久久久久久久久免费相片| 日韩在线卡一卡二| 色婷婷国产精品综合在线观看| 久久久无码精品亚洲日韩按摩| 亚洲国产裸拍裸体视频在线观看乱了| 国产成人午夜99999| 日韩一级黄色大片| 亚洲国产精品久久久久秋霞影院| 成人av手机在线观看| 2020国产精品| 美女www一区二区| 欧美性受极品xxxx喷水| 亚洲欧洲另类国产综合| 国产老女人精品毛片久久| 欧美一级高清大全免费观看| 亚洲午夜精品一区二区三区他趣| 成人91在线观看| 欧美国产综合一区二区| 麻豆一区二区99久久久久| 制服丝袜亚洲色图| 午夜精品福利视频网站| 色综合婷婷久久| 成人免费一区二区三区在线观看| 国产高清不卡二三区| 2021中文字幕一区亚洲| 久久99国产精品尤物| 欧美大片日本大片免费观看| 视频在线观看一区二区三区| 欧美日韩国产影片| 亚洲成av人**亚洲成av**| 欧美三级电影精品| 香蕉成人啪国产精品视频综合网 | 欧美系列日韩一区| 一区二区三区**美女毛片| 91福利视频在线| 亚洲国产va精品久久久不卡综合 | 亚洲国产精品高清| 成人免费视频一区| 国产精品护士白丝一区av| 国产精品69毛片高清亚洲| 国产午夜精品一区二区三区嫩草| 国产精品系列在线播放| 久久久久久久久久久99999| 国产福利一区二区| 成人免费在线观看入口| 欧美在线看片a免费观看| 一级日本不卡的影视| 欧美精品777| 精品亚洲国内自在自线福利| 国产亚洲一区二区在线观看| 99久久综合国产精品| 亚洲国产你懂的| 精品美女在线播放| 大桥未久av一区二区三区中文| 亚洲免费在线观看视频| 制服丝袜亚洲播放| 大陆成人av片| 午夜影院在线观看欧美| 久久久亚洲午夜电影| 色综合久久中文综合久久牛| 日本一不卡视频| 欧美国产成人精品| 8x8x8国产精品| 成人夜色视频网站在线观看| 亚洲五码中文字幕| 久久精品亚洲精品国产欧美| 在线观看国产91| 久久99国产精品久久99| 亚洲欧美日韩系列| 精品国产伦一区二区三区观看体验| a亚洲天堂av| 开心九九激情九九欧美日韩精美视频电影 | 国产亚洲美州欧州综合国| 色老头久久综合| 国产在线精品免费| 亚洲图片自拍偷拍| 国产视频一区二区在线| 欧美精品乱码久久久久久| 丰满亚洲少妇av| 男女男精品视频| 亚洲一区二区三区自拍| 国产欧美中文在线| 欧美一级爆毛片| 欧美亚洲国产怡红院影院| 国产精品888| 天堂在线一区二区| 一区二区在线免费观看| 久久久久久久久蜜桃| 欧美精品久久天天躁| 色综合中文字幕| 丁香一区二区三区| 国内外成人在线视频| 日韩在线一二三区| 亚洲最大成人综合| 亚洲视频电影在线| 中文字幕在线视频一区| 久久网这里都是精品| 日韩区在线观看| 欧美日韩一级视频| 欧美色图片你懂的| 91福利视频久久久久| 91论坛在线播放| 不卡影院免费观看| 国产suv一区二区三区88区| 精品一区二区三区不卡| 麻豆国产91在线播放| 免费成人在线观看视频| 日韩电影一区二区三区| 丝袜诱惑制服诱惑色一区在线观看| 一区二区三区国产精华| 一区二区三区日韩精品视频| |精品福利一区二区三区| 中文字幕av资源一区| 国产视频一区在线播放| 欧美国产一区在线| 国产精品国产三级国产aⅴ中文| 国产欧美一区二区精品秋霞影院| 久久久久免费观看| 久久精品亚洲国产奇米99| 久久九九99视频| 国产精品网站导航| 亚洲欧洲在线观看av| 亚洲欧洲av在线| 一区二区三区毛片| 五月综合激情网| 美女网站色91| 国产精品影视天天线| 成人app网站| 欧美日韩中字一区| 日韩精品在线一区| 国产精品美女久久久久久| **性色生活片久久毛片| 亚洲一区日韩精品中文字幕| 偷拍与自拍一区| 国内精品国产成人国产三级粉色| 国产成人h网站| 在线观看亚洲一区| 欧美刺激午夜性久久久久久久| 久久人人超碰精品| 亚洲欧美中日韩| 日韩精品免费视频人成| 国产剧情在线观看一区二区| 色综合夜色一区| 欧美mv日韩mv亚洲| **欧美大码日韩|