实用Linux

mysql-触发器

2018-10-28  本文已影响0人  黄一倚

触发器定义

触发器是由事件来触发某个操作,这些事件包括insert语句、update语句和delete语句。当数据库系统执行这些事件时,会激活触发器执行相应操作。

CREATE TRIGGER trigger_name trigger_time trigger_event ON tb_name FOR EACH ROW trigger_stmt
trigger_name:触发器的名称
tirgger_time:触发时机,为BEFORE或者AFTER
trigger_event:触发事件,为INSERT、DELETE或者UPDATE
tb_name:表示建立触发器的表明,就是在哪张表上建立触发器
trigger_stmt:触发器的程序体,可以是一条SQL语句或者是用BEGIN和END包含的多条语句
所以可以说MySQL创建以下六种触发器:
BEFORE INSERT,BEFORE DELETE,BEFORE UPDATE
AFTER INSERT,AFTER DELETE,AFTER UPDATE

创建一条执行语句的触发器

mysql> create trigger tr 
        -> after insert
        -> on user 
        -> for each row  
        -> insert into ulog(inTime) values(now());//
Query OK, 0 rows affected (0.06 sec)

测试触发器

mysql> select adduser(8,'Harry','789')//  这是一个自定义函数

创建多条执行语句的触发器

mysql> create trigger tr2
    -> after delete
    -> on user
    -> for each row
    -> begin
    -> insert into ulog(inTime) values(now());                                     
    -> insert into ulog(inTime) values(now());
    -> end 
    -> //
Query OK, 0 rows affected (0.08 sec)

测试

mysql> call removeUserById(4)//  这是一个存储过程
上一篇 下一篇

猜你喜欢

热点阅读