mysql 触发器示例_MySQL触发器示例
觸發(fā)器是與表有關的數(shù)據(jù)庫對象,在滿足定義條件時觸發(fā),并執(zhí)行觸發(fā)器中定義的語句集合。觸發(fā)器的這種特性可以協(xié)助應用在數(shù)據(jù)庫端確保數(shù)據(jù)的完整性。
創(chuàng)建觸發(fā)器
CREATE TRIGGER trigger_name trigger_time trigger_event
ON tbl_name FOR EACH ROW trigger_stmt
注意:觸發(fā)器只能創(chuàng)建在永久表(permanent table)上,不能對臨時表(Temporary Table)創(chuàng)建觸發(fā)器;
對同一個表,相同觸發(fā)時間的相同觸發(fā)事件,只能定義一個觸發(fā)器
trigger_time: 觸發(fā)時間 ?BEFORE、AFTER ? before:檢查約束前觸發(fā) ? ?after: 檢查約束后觸發(fā)
trigger_event: 觸發(fā)器的觸發(fā)事件 ?insert ?update delete
使用別名OLD 和 NEW 來引用觸發(fā)器中發(fā)生變化的記錄內(nèi)容,現(xiàn)在觸發(fā)器還只支持行級觸發(fā)的,不支持語句級觸發(fā)
刪除觸發(fā)器
DROP TRIGGER [schema_name.]trigger_name ? ? ?eg: drop trigger ins_film
查看觸發(fā)器
show triggers
示例:
DELIMITER //
CREATE TRIGGER relation
AFTER UPDATE ON `rel` FOR EACH ROW BEGIN
UPDATE `relations`
SET realname = new.name,age = countage(FROM_UNIXTIME(new.date,'%Y-%m-%d')),jobs = new.job,tel = new.tel,relation = new.relationion
WHERE employee_uid = old.employee_uid AND relation = old.relationion;
END//
DELIMITER ;
注:countage 是自定義的一個計算年齡的函數(shù),詳見我的另一篇博文http://blog.csdn.net/u012732259/article/details/41448663
總結(jié)
以上是生活随笔為你收集整理的mysql 触发器示例_MySQL触发器示例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: navicat for mysql服务_
- 下一篇: python用import xlwt出现