方法/步驟
專注于為中小企業(yè)提供成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)迪慶州免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了1000+企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
首先,我們需要確定自己的Mysql數(shù)據(jù)庫的版本,因?yàn)閙y sql數(shù)據(jù)庫是從5.0.2版本才開始支持觸發(fā)器的。
我推薦大家在電腦的dos命令界面中輸入 mysql --version,來獲取mysql的版本號(hào),注意version的兩個(gè)橫線和之前的mysql是有一個(gè)空格的。
上一步獲取了我們的mysql版本號(hào),這一不我們就開始建立觸發(fā)器了。我采用的以視圖加代碼的方式創(chuàng)建,我們?cè)跀?shù)據(jù)表中找到要執(zhí)行刪除操作的表,然后右鍵設(shè)計(jì)表
這樣我們就打開了表的設(shè)計(jì)頁面,可以看到有一個(gè)觸發(fā)器選項(xiàng)卡,我們點(diǎn)擊“觸發(fā)器”
可以看到對(duì)應(yīng)的選項(xiàng),我們?cè)诿锩嫣砑游覀冃枰陆ǖ挠|發(fā)器的名字,在觸發(fā)選項(xiàng)中選擇before或者after,然后在插入、更新、刪除三個(gè)選項(xiàng)中勾選一個(gè)。
這樣我們就建立了一個(gè)名為“datri”的觸發(fā)器,在刪除操作執(zhí)行之后觸發(fā)
然后我們?cè)谙旅娴亩x下面的框中輸入我們需要執(zhí)行的操作。然后點(diǎn)擊sql預(yù)覽,可以看到整個(gè)觸發(fā)器的代碼
最后就是保存了,由于我們做的是觸發(fā)器,保存之后,在執(zhí)行刪除操作時(shí),這個(gè)觸發(fā)器才相當(dāng)于 被執(zhí)行。
mysql用觸發(fā)器禁止某條記錄的刪除、修改:
delimiter //
CREATE TRIGGER xx_company_agent_update? BEFORE UPDATE ON xx_company_agent
FOR EACH ROW
BEGIN
IF OLD.bank_card is not null THEN
SET NEW.bank_card = OLD.bank_card,NEW.money= OLD.money,NEW.real_money=OLD.real_money,NEW.bank_name=OLD.bank_name;
END IF;
END;//
delimiter ;
擴(kuò)展資料
mysql觸發(fā)器的使用
用戶記錄用戶的預(yù)期事件(schema是特殊用戶的數(shù)據(jù)庫對(duì)象集合。這些對(duì)象包括:表,索引,視圖,存儲(chǔ)程序等。在Oracle里, schema要求創(chuàng)建一個(gè)用戶。但是也可以創(chuàng)建一個(gè)沒有schema的用戶(根本沒有對(duì)象)。
所以在Oracle-中,用戶就是一個(gè)帳戶而schema就是對(duì)象。可能在其他的數(shù)據(jù)庫平臺(tái)上可以創(chuàng)建一個(gè)沒有用戶的schema。LOGOFF不能是AFTER LOGOFF,將會(huì)重新操作,這里應(yīng)該是BEFORE,否則就會(huì)報(bào)錯(cuò):替換可以插入不能有AFTER。創(chuàng)建或替換觸發(fā)器MYLOGOFFTRIGGER。
參考資料來源:百度百科—mySQL
1、先創(chuàng)建一個(gè)空的person_log表用來存放被刪除的記錄。
2、創(chuàng)建一個(gè)觸發(fā)器del_person,執(zhí)行刪除操作后將記錄插入到person_log表。
觸發(fā)器person_log
3、從person表中執(zhí)行刪除記錄操作來觸發(fā)事件
4、查看person_log表結(jié)果:
結(jié)果:從person表執(zhí)行刪除一條記錄后會(huì)觸發(fā)person_log表中增加被刪除的記錄。