說明:如果您有任何疑問或想咨詢其他業(yè)務(wù)請(qǐng)撥打電話 400 685 0732
全網(wǎng)監(jiān)測海量數(shù)據(jù)按需發(fā)布監(jiān)測預(yù)警
實(shí)時(shí)把握輿情動(dòng)態(tài)精準(zhǔn)追溯信息源頭
myesl觸發(fā)器該如何使用,這個(gè)問題是許多在學(xué)習(xí)網(wǎng)頁設(shè)計(jì)的同學(xué)經(jīng)常會(huì)遇到的問題,而且也是必須要掌握的一個(gè)知識(shí)點(diǎn)。所以今天我們就一起來了解一下有關(guān)myesl觸發(fā)器的相關(guān)知識(shí)點(diǎn)。
mysql觸發(fā)器——mysql如何使用觸發(fā)器
1. 語法:
createtriggertrigger_name
after/beforeinsert/update/deleteontb_name
foreachrow
begin
sql語句:(觸發(fā)的語句一句或者多句)
end;
2. 現(xiàn)有兩張表商品表goods和訂單表order來說明觸發(fā)器的工作原理;
3. 我們現(xiàn)在往goods表添加四條記錄:
insertintogoods(goods_name,goods_num)values(“手機(jī)”,20),(“電腦”,30),(“單反”,20);
4. 實(shí)現(xiàn)購買任意商品,對(duì)應(yīng)的商品數(shù)量相應(yīng)的減少:
分析:
監(jiān)視地點(diǎn):order表
監(jiān)視事件:insert操作
觸發(fā)時(shí)間:在insert操作之后
觸發(fā)事件:update操作
createtriggert1
afterinserton`order`
foreachrow
begin updategoodssetgoods_num=goods_num-new.order_numwheregoods_id=new.goods_id;
end;
5. 如我們購買5個(gè)手機(jī):
insertinto`order`(goods_id,order_num)values(1,5);
注:對(duì)于insert而言新增的行使用new來表示,行中的每一列的值用new.列名來表示
6. 撤銷訂單:
分析:
監(jiān)視地點(diǎn):order表
監(jiān)視事件:delete操作
觸發(fā)時(shí)間:在delete操作之后
觸發(fā)事件:update操作
droptriggerifexistst1;
createtriggert1
afterdeleteon`order`
foreachrow
begin updategoodssetgoods_num=goods_num+old.order_numwheregoods_id=old.goods_id;
end;
如何利用mysql數(shù)據(jù)庫創(chuàng)建觸發(fā)器
1. 第一步,首先,在數(shù)據(jù)庫world下找到“觸發(fā)器”,鼠標(biāo)右鍵“創(chuàng)建觸/發(fā)器”,彈出輸入新觸發(fā)器名稱,填寫名稱“city_trigger”,
2. 第二步,輸入完畢,單擊“創(chuàng)建”按鈕,生成city_trigger,如下圖所示:
3. 第三步,為了不影響其他表結(jié)構(gòu),這里新建一張數(shù)據(jù)庫表t_city_info,代碼如下:
createtable`world`.`t_city_info`(
`id`int(8)notnullauto_incrementcomment’id’,
`city_code`int(4)comment’城市編碼’,
`city_name`varchar(20)comment’城市名稱’,
`city_detail`varchar(100)comment’描述’,
primarykey(`id`)
)charset=utf8;
4. 第四步,數(shù)據(jù)庫表t_city_info創(chuàng)建完畢后,修改觸發(fā)器代碼,代碼如下:
delimiter$$
use`world`$$
droptrigger/*!50032ifexists*/`city_trigger`$$
create
/*!50017definer=’root’@’localhost’*/
trigger`city_trigger`beforeinserton`t_city_info`
foreachrowbegin
insertintot_tri_timevalues(now());
end;
$$
delimiter;
5. 第五步,修改`city_trigger`觸發(fā)器,點(diǎn)擊運(yùn)行按鈕,并刷新數(shù)據(jù)庫,可以在觸發(fā)器文件夾下查看到`city_trigger`,
6. 第六步,然后,先t_city_info中插入一條數(shù)據(jù),代碼如下:
insertintot_city_info(
id,
city_code,
city_name,
city_detail
)
values
(1000,100,’武漢’,’武漢市’);
點(diǎn)擊運(yùn)行后,出現(xiàn)錯(cuò)誤,錯(cuò)誤代碼如下:
1queriesexecuted,0success,1errors,0warnings
查詢:insertintot_city_info(id,city_code,city_name,city_detail)values(1000,100,’武漢’,’武漢市’)
錯(cuò)誤代碼:1146
table’world.t_tri_time’doesn’texist
執(zhí)行耗時(shí):0sec
傳送時(shí)間:0sec
總耗時(shí):0.012sec
7. 第七步,由于t_tri_time不存在,導(dǎo)致出錯(cuò),接著創(chuàng)建t_tri_time數(shù)據(jù)庫表。
8. 第八步,再次執(zhí)行插入語句,結(jié)果成功;然后,查詢t_tri_time數(shù)據(jù)庫表,代碼如下:
select*fromt_tri_time。
以上就是myesl觸發(fā)器該如何使用的所有內(nèi)容,既然大家已經(jīng)知道了該觸發(fā)器如何使用,接下來就需要大家多去練習(xí)才能夠完全的掌握這一個(gè)技巧。若大家還想了解更多與之有關(guān)的內(nèi)容,歡迎關(guān)注我們文軍零銷的官網(wǎng)。
推薦閱讀
說明:如果您有任何疑問或想咨詢其他業(yè)務(wù)請(qǐng)撥打電話 400 685 0732