注冊|登錄

聯系電話:024-31891684  13390130939
沈陽軟件公司--沈陽軟件定制

沈陽軟件開發_沈陽軟件公司_沈陽軟件定制/軟件/最新技術

Latest technology最新技術

MySQL觸發器學習總結

瀏覽量:2525

#創建觸發器,當往order表中添加記錄是,更新goods表
delimiter $

CREATE TRIGGER trigger1
AFTER
INSERT ON `order`
FOR EACH ROW
BEGIN
UPDATE goods SET num=num-new.much WHERE id=new.gid;
END$

執行

INSERT INTO `order` (gid,much) VALUES(1,5)

SELECT * FROM goods WHERE id=1
發現 電視機的數量剩下30

當執行

INSERT INTO `order` (gid,much) VALUES(2,100)

發現
冰箱的數量剩下
-77

這是一個很明顯的漏洞,如何補救呢?
由于update事件是在insert之后發生的,所以我們無法事先對用戶的下單數量(即order表
中的much字段)進行過濾
解決辦法:
在創建觸發器的時候,將after關鍵字改成before,并對用戶的下單數量進行判斷


首先,得刪除先去的觸發器

drop trigger trigger1;

#創建觸發器
#觸發時間:before
delimiter $

CREATE TRIGGER trigger1
BEFORE
INSERT ON `order`
FOR EACH ROW
BEGIN
IF new.much >5 THEN
SET new.much=5
END IF;
UPDATE goods SET num=num-new.much WHERE id=new.gid;
END$
這樣,當執行INSERT INTO `order` (gid,much) VALUES(2,100)的時候,寫入order表的下單數量其實只有5,同樣,goods表中的庫存數量只有減少5,因為在insert操作之前先觸發了
update操作,借此可以對下單數量做個判斷

沈陽團購網|營口網站制作|沈陽軟件公司|軟件定制|網站建設|加盟易勢|提交問題

主站蜘蛛池模板: 波多野结衣在线女教师| 天堂一码二码专区| 好大的奶女好爽视频| 国产精品igao视频网| 全彩本子acg里番本子| 久久精品国产精品亚洲蜜月| 一二三四在线观看免费高清视频 | 中文字幕亚洲综合久久综合| 1区1区3区4区产品亚洲| 蹂躏国际女刑警之屈服| 精彩视频一区二区| 欧美香蕉爽爽人人爽| 日韩免费黄色片| 天堂亚洲国产日韩在线看| 国产成人综合精品| 免费播放美女一级毛片| 亚洲av日韩综合一区二区三区 | 美女免费精品高清毛片在线视| 国产福利精品视频| 99精品偷自拍| 少妇被又大又粗又爽毛片久久黑人| 久久亚洲最大成人网4438| 欧美一级久久久久久久大| 亚洲欧美自拍另类图片色| 男人让女人桶爽30分钟| 又粗又猛又黄又爽无遮挡| 被公侵犯电影bd在线播放| 国产女人18毛片水真多18精品| 亚洲香蕉久久一区二区| 国产精品成人免费视频网站| 99国产精品永久免费视频| 女教师巨大乳孔中文字幕| 三上悠亚中文在线| 成年美女黄网站色大片免费看| 久久国产乱子伦免费精品| 日韩视频中文字幕专区| 亚洲αv在线精品糸列| 欧美性生活视频免费| 亚洲欧美日韩久久精品第一区| 激情久久av一区av二区av三区 | 国产精品秦先生手机在线|