Mysql中關(guān)于觸發(fā)器的操作實(shí)例詳解

觸發(fā)器的操作:

1.觸發(fā)器的創(chuàng)建:

(1).創(chuàng)建包含一條語(yǔ)句的觸發(fā)器

create?trigger?trigger_name?before|after?trigger_event?on?table_name?for?each?row?trigger_stmt;

trigger_event表示操作事件(insert,update,delete);

trigger_stmt表示執(zhí)行的語(yǔ)句

例子:

create?trigger?tri_test?after?insert?on?t1?for?each?row?insert?into?t1_log?values(USER(),'insert?record?into?t1',now());?  //?表示的是在對(duì)表t1的每一行進(jìn)行插入操作之后,在表t1_log中插入一條數(shù)據(jù),數(shù)據(jù)是values之后的內(nèi)容,USER()指的是當(dāng)前的用戶(hù)(內(nèi)置函數(shù)),now()當(dāng)前時(shí)間.

(2).創(chuàng)建包含多條語(yǔ)句的觸發(fā)器

create?trigger?trigger_name?before|after?trigger_event?on?table_name?for?each?row?BEGIN?trigger_stmt?end;

例子:

delimiter?$$  create?trigger?tri_test  after?insert?on?t1?for?each?row  BEGIN  insert?into?t1_log?values(USER(),'after?insert?table?t1',now());  insert?into?t1_log?values(USER(),'after?insert?table?t1',now());  END  $$

執(zhí)行完之后執(zhí)行 delimiter ;恢復(fù)分隔符 ;

delimiter指的是切換分隔符,因?yàn)槎鄺l語(yǔ)句之間是用分號(hào)隔開(kāi),所以要切換默認(rèn)分隔符,執(zhí)行完語(yǔ)句之后再切換回去.

2.查看觸發(fā)器:

show?triggers?/G;  在information_schema數(shù)據(jù)庫(kù)中查詢(xún)  use?information_schema;  select?*?from?TRIGGERS?where?trigger_name?=?'tri_test'?G;

3.觸發(fā)器的修改

觸發(fā)器是不能修改的,只能將原來(lái)的刪除,然后重新建立新的觸發(fā)器.

4.觸發(fā)器的刪除:

drop?trigger?trigger_name;

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊14 分享