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

17站長網(wǎng)

17站長網(wǎng) 首頁 數(shù)據(jù)庫 SQLite教程 查看內(nèi)容

SQLite外鍵的實(shí)現(xiàn)

2023-3-21 15:55| 查看: 2424 |來源: 互聯(lián)網(wǎng)

SQLite現(xiàn)在的版本還不支持外鍵功能,雖然外鍵約束會(huì)被解析,但執(zhí)行的時(shí)候被忽略。但我們可以手動(dòng)實(shí)現(xiàn)外鍵,實(shí)現(xiàn)的原理就是觸發(fā)器。下面是我的實(shí)現(xiàn)方法。主要是針 ...

SQLite現(xiàn)在的版本還不支持外鍵功能,雖然外鍵約束會(huì)被解析,但執(zhí)行的時(shí)候被忽略。但我們可以手動(dòng)實(shí)現(xiàn)外鍵,實(shí)現(xiàn)的原理就是觸發(fā)器。下面是我的實(shí)現(xiàn)方法。主要是針對(duì)一個(gè)例子:

先看下面兩個(gè)表。

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表建立對(duì)PLU表的外鍵約束,這樣就可以實(shí)現(xiàn)CORE2數(shù)據(jù)需求中的要求,問題是SQLite不執(zhí)行這個(gè)約束,所以這樣創(chuàng)建以后,我們還要再創(chuàng)建三個(gè)觸發(fā)器,INSERT,UPDATE,DELETE觸發(fā)器:

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;

下面我們分別來作三個(gè)實(shí)驗(yàn):

一、插入實(shí)驗(yàn)

首先我們?cè)赑LU里面插入一個(gè)數(shù)據(jù)(一雙anta運(yùn)動(dòng)鞋的信息):

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

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

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

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

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

更新實(shí)驗(yàn)

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

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

刪除實(shí)驗(yàn)

delete from PLU where PluID=1;

查看PluSuit中數(shù)據(jù)被正確刪除。

實(shí)驗(yàn)結(jié)果,觸發(fā)器的實(shí)現(xiàn)完全正確。

本文最后更新于 2023-3-21 15:55,某些文章具有時(shí)效性,若有錯(cuò)誤或已失效,請(qǐng)?jiān)诰W(wǎng)站留言或聯(lián)系站長:[email protected]
·END·
站長網(wǎng)微信號(hào):w17tui,關(guān)注站長、創(chuàng)業(yè)、關(guān)注互聯(lián)網(wǎng)人 - 互聯(lián)網(wǎng)創(chuàng)業(yè)者營銷服務(wù)中心

免責(zé)聲明:本站部分文章和圖片均來自用戶投稿和網(wǎng)絡(luò)收集,旨在傳播知識(shí),文章和圖片版權(quán)歸原作者及原出處所有,僅供學(xué)習(xí)與參考,請(qǐng)勿用于商業(yè)用途,如果損害了您的權(quán)利,請(qǐng)聯(lián)系我們及時(shí)修正或刪除。謝謝!

17站長網(wǎng)微信二維碼

始終以前瞻性的眼光聚焦站長、創(chuàng)業(yè)、互聯(lián)網(wǎng)等領(lǐng)域,為您提供最新最全的互聯(lián)網(wǎng)資訊,幫助站長轉(zhuǎn)型升級(jí),為互聯(lián)網(wǎng)創(chuàng)業(yè)者提供更加優(yōu)質(zhì)的創(chuàng)業(yè)信息和品牌營銷服務(wù),與站長一起進(jìn)步!讓互聯(lián)網(wǎng)創(chuàng)業(yè)者不再孤獨(dú)!

掃一掃,關(guān)注站長網(wǎng)微信

大家都在看

熱門排行

最近更新

返回頂部
主站蜘蛛池模板: 女性爽爽影院免费观看 | 无码人妻视频又大又粗欧美 | 攻把受做得合不拢腿play | 99人精品福利在线观看 | 国内精品久久久久影院亚洲 | 伊人久久电影院 | 神马老子影院午夜伦 | 99精品视频在线免费观看 | 一本道mw高清码二区三区 | 一进一出抽搐gif免费60秒 | 久久re热线视频国产 | 迅雷哥在线观看高清 | 美女内射少妇一区二区四区 | 国产真实强被迫伦姧女在线观看 | 日韩精品无码视频一区二区蜜桃 | 《乳色吐息》无删减版在线观看 | 艳鉧动漫片1~6全集在线 | 99精品在线观看 | 99热在线播放 | 国产婷婷综合在线视频中文 | 美女洗澡脱得一二干净 | 敌伦小芳的第一次 | 国产成人精品永久免费视频 | 国产乱人伦AV麻豆网 | 7777色鬼xxxx欧美色夫 | 亚色九九九全国免费视频 | 伊人久久精品99热超碰 | AV福利无码亚洲网站麻豆 | 91麻豆精品一二三区在线 | 狠狠躁日日躁人人爽 | 啊…嗯啊好深男男高h文 | 亚洲色欲色欲www474ee | 欧美人与禽zoz0性伦交app | 男女后进式猛烈xx00动态图片 | 蜜桃传媒星空传媒在线播放 | 九九热在线视频观看这里只有精品 | 24小时日本免费看 | 蜜桃传媒星空传媒在线播放 | 美国一级大黄一片免费的网站 | 欧美亚洲精品午夜福利AV | 精品人妻无码一区二区三区蜜桃臀 |