MySQL的触发器

目录

1.触发器:

1.1.事件

2.触发器的创建:

3.触发器的查看和删除

4.触发器的优缺点

    4.1 优点

    4.2 缺点

5.触发器的注意事项


1.触发器:

        由事件来触发某个操作,当事件发生,就自动激发触发器执行相应的操作。

1.1.事件

        用户的动作或者触发某项行为

2.触发器的创建:

    •   create trigger…

    •   new表示insert添加语句的新记录

#创建触发器emps_insert_trigger
#每当向emps表中添加一条记录时,同步将这条记录添加到emps_back表中

DELIMITER //

CREATE TRIGGER emps_insert_trigger
AFTER INSERT ON emps
FOR EACH ROW

BEGIN
	INSERT INTO emp_back(employee_id,last_name,salary)
	VALUES(new.employee_id,new.last_name,new.salary);
END //

DELIMITER ;

3.触发器的查看和删除

    •   show triggers

    •   show create triggers 触发器名

    •   select from information_schema.trigger

    ⁃   drop trigger if exists 触发器名称

#触发器的查看
SHOW TRIGGERS;

SHOW CREATE TRIGGERS emps_insert_trigger;

#从从系统库information_schema的TRIGGERS表中查询触发器信息
SELECT * FROM information_schema.triggers;

#触发器的删除
DROP TRIGGER IF EXISTS emps_insert_trigger;

4.触发器的优缺点

    4.1 优点

    •   确保数据的完整性

    •   可以帮助我们记录操作日志

    •   可以用在操作数据前,对数据进行合法性检查

    4.2 缺点

    •   最大的问题是可读性差。触发器存储在数据库中,由事件驱动,因此触发器有可能不受应用层的控制

    •   相关数据的变更,可能会导致触发器出错

5.触发器的注意事项

        若在子表中定义了外键约束,且外键制定了ON UPDATE/DELETE CASCADE/SET NULL
子句,此时删除父表被引用的记录行时,也会引起子表的修改或删除,但此时基于子表的update和delete语句定义的触发器并不会被激活

你可能感兴趣的:(oracle,数据库)