青草久久影院-青草久久伊人-青草久久久-青草久久精品亚洲综合专区-SM双性精跪趴灌憋尿调教H-SM脚奴调教丨踩踏贱奴

17站長網

17站長網 首頁 數據庫 SQLite教程 查看內容

SQLite外鍵的實現

2023-3-21 15:55| 查看: 2442 |來源: 互聯網

SQLite現在的版本還不支持外鍵功能,雖然外鍵約束會被解析,但執行的時候被忽略。但我們可以手動實現外鍵,實現的原理就是觸發器。下面是我的實現方法。主要是針 ...

SQLite現在的版本還不支持外鍵功能,雖然外鍵約束會被解析,但執行的時候被忽略。但我們可以手動實現外鍵,實現的原理就是觸發器。下面是我的實現方法。主要是針對一個例子:

先看下面兩個表。

CREATE TABLE PLU (PluID integer NOT NULL PRIMARY KEY,

Name text NOT NULL,

Property text,

Price double NOT NULL,

Left integer NOT NULL,

Department text,

Other text);

CREATE TABLE PluSuit (SuitID integer NOT NULL PRIMARY KEY,

Price double NOT NULL,

Property text,

Name text NOT NULL,

PluID integer NOT NULL CONSTRAINT fk_plu_id REFERENCES PLU(PluID) ON DELETE CASCADE,

Numbers integer NOT NULL)

這樣就為PluSuit表建立對PLU表的外鍵約束,這樣就可以實現CORE2數據需求中的要求,問題是SQLite不執行這個約束,所以這樣創建以后,我們還要再創建三個觸發器,INSERT,UPDATE,DELETE觸發器:

BEFORE INSERT ON PluSuit

FOR EACH ROW BEGIN

SELECT RAISE(ROLLBACK, 'insert on table "PluSuit" violates foreign key constraint "fk_plu_id"')

WHERE (SELECT PluID FROM PLU WHERE PluID = NEW.PluID) IS NULL;

END;

BEFORE UPDATE ON PluSuit

FOR EACH ROW BEGIN

SELECT RAISE(ROLLBACK, 'update on table "PluSuit" violates foreign key constraint "fk_plu_id"')

WHERE (SELECT PluID FROM PLU WHERE PluID = NEW.PluID) IS NULL;

END;

CREATE TRIGGER fkd_plusuit_pluid

BEFORE DELETE ON PLU

FOR EACH ROW BEGIN

DELETE from PluSuit WHERE PluID = OLD.PluID;

END;

下面我們分別來作三個實驗:

一、插入實驗

首先我們在PLU里面插入一個數據(一雙anta運動鞋的信息):

insert into PLU values(1,'anta','sport',299,100,'sales','ok');

insert into PLU values(3,'nike','sport',699,200,'sales','ok');

然后我們開始在PluSuit里面插入一個數據(兩雙一起打折賣):

insert into PluSuit values(100,350,'old','anta',1,2);成功了

insert into PluSuit values(100,350,'old','anta',2,2);失敗,得到正確的錯誤信息

更新實驗

update PluSuit set PluID=2 where SuitID=100;失敗,得到正確的錯誤信息

update PluSuit set PluID=3 where SuitID=100;成功

刪除實驗

delete from PLU where PluID=1;

查看PluSuit中數據被正確刪除。

實驗結果,觸發器的實現完全正確。

本文最后更新于 2023-3-21 15:55,某些文章具有時效性,若有錯誤或已失效,請在網站留言或聯系站長:[email protected]
·END·
站長網微信號:w17tui,關注站長、創業、關注互聯網人 - 互聯網創業者營銷服務中心

免責聲明:本站部分文章和圖片均來自用戶投稿和網絡收集,旨在傳播知識,文章和圖片版權歸原作者及原出處所有,僅供學習與參考,請勿用于商業用途,如果損害了您的權利,請聯系我們及時修正或刪除。謝謝!

17站長網微信二維碼

始終以前瞻性的眼光聚焦站長、創業、互聯網等領域,為您提供最新最全的互聯網資訊,幫助站長轉型升級,為互聯網創業者提供更加優質的創業信息和品牌營銷服務,與站長一起進步!讓互聯網創業者不再孤獨!

掃一掃,關注站長網微信

大家都在看

熱門排行

最近更新

返回頂部
主站蜘蛛池模板: 日本久久道一区二区三区 | 午夜一区二区三区 | 少妇人妻偷人精品视蜜桃 | 国产在线精品亚洲观看不卡欧美 | AV色蜜桃一区二区三区 | 又爽又黄又粗又大免费视频 | 52色擼99热99| 啊…嗯啊好深男男小黄文 | 中文字幕一区二区三区在线不卡 | 久久久综合中文字幕久久 | 亚洲国产精品高清在线 | 亚洲人成网站在线观看90影院 | 久久毛片基地 | 在线观看亚洲免费人成网址 | 动漫AV纯肉无码AV电影网 | 差差差差差差差差免费观看 | 在线观看日韩一区 | 亚洲日韩欧美国产专区 | 国产99精品视频一区二区三区 | 久久久久久久伊人电影 | 午夜免费国产体验区免费的 | 精品国产成人AV在线看 | 暖暖 免费 高清 日本视频5 | 亚洲视频黄 | 久久这里只有精品1 | 大香网伊人久久综合网2020 | 偷拍亚洲制服另类无码专区 | 亚洲精品www久久久久久久软件 | 亚洲精品成人A8198A片漫画 | 妖精视频一区二区免费 | 调教女M屁股撅虐调教 | 久久精品国产免费播高清无卡 | 欧美黄色xxx | 校园男男高h小黄文 | 国产自啪偷啪视频在线 | 99爱在线精品视频网站 | 无码天堂亚洲国产AV久久 | 99无码熟妇丰满人妻啪啪 | 色播成人影院 | 一本道高清到手机在线 | 中文日韩亚洲欧美字幕 |