05-触发器的使用
触发器执行的语句有以下两个限制。
触发程序不能调用将数据返回客户端的存储程序,也不能使用采用CALL语句的动态SQL 语句,但是允许存储程序通过参数将数据返回触发程序。也就是存储过程或者函数通过OUT或者INOUT类型的参数将数据返回触发器是可以的,但是不能调用直接返回数据的过程。
不能在触发器中使用以显式或隐式方式开始或结束事务的语句,如 START TRANS-ACTION、COMMIT或ROLLBACK。
MySQL的触发器是按照BEFORE触发器、 行操作、 AFTER触发器的顺序执行的,其中任何一步操作发生错误都不会继续执行剩下的操作。如果是对事务表进行的操作,那么会整个作为一个事务被回滚(Rollback),但是如果是对非事务表进行的操作,那么已经更新的记录将无法回滚,这也是设计触发器的时候需要注意的问题 。