MySQL数据库的触发器的操作

1.为什么使用触发器:

    用来实现一些表事件触发的某个操作

    触发器需要声明、执行

    由事件来触发、激活从而实现执行

    只有触发DELETE语句、INSERT语句或者UPDATE语句的时候才会自动执行所设置的操作

    使用触发器能够加强数据库表中的数据完整性约束和业务规则

2.创建触发器:

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

        CREATE TRIGGER trigger_name

        BEFORE|AFTER trigger_EVENT

        ON TABLE_NAME FOR EACH ROW trigger_STMT;

        trigger_name(触发器名字)

        BEFORE|AFTER指定了触发器执行时间,前者是指在触发器事件之前执行触发器,后者是在触发器事件之后执行触发器

        trigger_EVENT(触发事件)

        TABLE_NAME触发事件操作表的名字

        FOR EACH ROW表示任何一条记录上的操作满足触发事件都会触发该触发器

        trigger_STMT表示激活触发器后执行的语句

        例如:

        CREATE TRIGGER tri_diarytime

        BEFORE INSERT

        ON t_dept FOR EACH ROW

        INSERT INTO t_diary VALUES(NULL,'t_dept',now());

    2.2创建包含多条执行语句的触发器:

        CREATE TRIGGER trigger_name

        BEFORE|AFTER trigger_EVENT

        ON TABLE_NAME FOR EACH ROW

        BEGIN

        trigger_STMT

        END

        BEGIN和END之间为所要执行的多个执行语句的内容,执行语句之间用分号隔开

        因为“;”作为执行语句的结束符所以需要使用关键字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_dept',now());

        END

        $$

        DELIMITER;

3.查看触发器:

    3.1使用SHOW TRIGGERS语句查看触发器:

        SHOW TRIGGERS \G

    3.2通过查看系统表triggers实现查看触发器:

        USE information_schema;

        SELECT * FROM triggers \G

        显示触发器的详细信息:

        SELECT * FROM TRIGGERS WHERE TRIGGER_NAME='tri_diarytime2' \G

4.删除触发器:

    DROP TRIGGER trigger_name;

猜你喜欢

转载自blog.csdn.net/qq_38386085/article/details/80662885