MYsql 觸發器

一.創建有一條執行語句的觸發器:

   

 create trigger trigger_name

        before|after trigger_event

        on 表名 for each row  trigger_STMT;

before 或者after 指定了觸發器執行的時間,其中前者表示在觸發器事件之前執行觸發器語句。

trigger_event表示觸發事件,即觸發器執行條件,(包含delete update insert三個語句)。

table_name 表示觸發事件操作表的名字,即在哪個表中執行trigger_event。

for each row表示任何一條記錄上的操作滿足觸發事件都會觸發該觸發器;

trigger_STMT表示激活觸發器後被執行的語句。

例如:

    有兩張表,t_dept部門表

create table t_dept(

        deptno int,

        dname varchar(20),

        loc varchar(20)

);

t_diary日記表:

create table t_diary(

    diaryno int,

    tablename varchar(20),

    diarytime datetime

);
create trigger tri_diarytim

    before insert on t_dept for each row

        insert into t_diary values (NULL,'dept',now());

二.創建包含多條執行語句的觸發器:

create trigger trigger_name

    before|after trigger_evevnt

    on table_name for each row

    begin 

    trigger_STMT 

    end

    在mysql中由於一般用;來來作爲語句的結束符號,但是在創建觸發器時,需要用到;符號作爲執行語句的結束符號。

    爲了解決該問題,可以用關鍵字delimiter 語句,例如delimiter $$來將結束符號設置爲$$.

    例如:    

delimiter $$

    create trigger tri_diarytime2

    after insert

     on t_dept for each row
    begin

    insert into t_diary values (null,'t_dept',now());

    insert into t_diary values (null,'t_deot',now());

     end
    $$

在最後記得 delimiter ;

三:查看觸發器:

    show triggers;

四:刪除觸發器:

    drop trigger trigger_name;

    

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章