MySQL觸發(fā)器之創(chuàng)建觸發(fā)器
發(fā)表時間:2023-08-31 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]MySQL觸發(fā)器之創(chuàng)建觸發(fā)器觸發(fā)器在數(shù)據(jù)庫系統(tǒng)開發(fā)過程中具有非常重要的作用,例如可以防止有害數(shù)據(jù)錄入數(shù)據(jù)庫,可以改變或取消insert、update和delete語句的執(zhí)行及在一個會話中監(jiān)聽數(shù)據(jù)庫中的數(shù)據(jù)的改變。那我們在前面介紹了關(guān)于MySQL視圖的應(yīng)用的幾篇文章《MySQL視圖的應(yīng)用之創(chuàng)建視圖》...
MySQL觸發(fā)器之創(chuàng)建觸發(fā)器觸發(fā)器在數(shù)據(jù)庫系統(tǒng)開發(fā)過程中具有非常重要的作用,例如可以防止有害數(shù)據(jù)錄入數(shù)據(jù)庫,可以改變或取消insert、update和delete語句的執(zhí)行及在一個會話中監(jiān)聽數(shù)據(jù)庫中的數(shù)據(jù)的改變。
那我們在前面介紹了關(guān)于MySQL視圖的應(yīng)用的幾篇文章《MySQL視圖的應(yīng)用之創(chuàng)建視圖》《MySQL視圖的應(yīng)用之修改視圖》以及《MySQL視圖的應(yīng)用之應(yīng)用視圖》,那么我們這篇文章開始主要介紹MySQL觸發(fā)器~
如果用戶打算在數(shù)據(jù)庫中通過觸發(fā)器實現(xiàn)某一動作的監(jiān)聽,那么首先應(yīng)該創(chuàng)建觸發(fā)器,觸發(fā)器是在“命令提示符”下創(chuàng)建的。
技術(shù)要點(diǎn)
MySQL數(shù)據(jù)庫創(chuàng)建觸發(fā)器的格式如下:
create trigger <觸發(fā)器名稱>
{ before after}
{insert update delete}
on <表名>
for each row
<觸發(fā)器SQL語句>
create trigger <觸發(fā)器名稱>:創(chuàng)建一個新觸發(fā)器,并指定觸發(fā)器的名稱。
{ before after}:用于指定在insert、update或delete語句執(zhí)行前觸發(fā)還是在語句執(zhí)行后觸發(fā)。
on <表名>:用于指定響應(yīng)該觸發(fā)器的表名。
for each row:觸發(fā)器的執(zhí)行間隔,for each row 通知觸發(fā)器每隔一行執(zhí)行一次動作,而不是對整個表執(zhí)行一次。
<觸發(fā)器SQL語句>:觸發(fā)器要執(zhí)行的SQL語句,如果該觸發(fā)器要執(zhí)行多條SQL語句,要將多條語句放在begin…end塊中。
實現(xiàn)過程
(1)在“命令提示符”下創(chuàng)建數(shù)據(jù)表tb_test。代碼如下:
create table tb_test(t_id varchar(20),t_name varchar(20))
(2)將換行標(biāo)記轉(zhuǎn)換為“//”。代碼如下:
delimiter //
(3)創(chuàng)建觸發(fā)器,實現(xiàn)無論用戶向表tb_test添加什么數(shù)據(jù)都使字段t_name的內(nèi)容為“mrsoft”。代碼如下:
create trigger test_tri
before insert on tb_test
for each row
set new.t_name='mrsoft'
(4)向表tb_test添加一條記錄,并查看添加后的結(jié)果。代碼如下:
insert into tb_test(t_id,t_name) values('mr0001', '123')//
select * from tb_test
那么我們將上面的實現(xiàn)過程在“命令提示符”中一步步輸入實現(xiàn),輸出結(jié)果如下圖:
關(guān)于MySQL觸發(fā)器的創(chuàng)建我們就介紹到這里,是不是很簡單,相信小伙伴們都可以快速的掌握,那么我們下一篇文章會繼續(xù)介紹MySQL觸發(fā)器,具體請閱讀《MySQL觸發(fā)器之查看觸發(fā)器》!
【相關(guān)教程推薦】
1.【MYSQL在線免費(fèi)視頻教程】
2. 相關(guān)視頻課程推薦: 《動力節(jié)點(diǎn)mysql基礎(chǔ)視頻教程》
以上就是MySQL觸發(fā)器之創(chuàng)建觸發(fā)器的詳細(xì)內(nèi)容,更多請關(guān)注php中文網(wǎng)其它相關(guān)文章!
學(xué)習(xí)教程快速掌握從入門到精通的SQL知識。