RT 问下

解决方案 »

  1.   

    没有BUG。但它只会按照规定的方式进行。所以你要先了解MySQL的触发器。如一楼所说,MySQL的触发器功能上并不强大,有很多限制。但功能上的欠缺不是BUG。
      

  2.   

    http://dev.mysql.com/doc/refman/5.1/zh/triggers.html#using-triggers触发程序名称存在于方案的名称空间内,这意味着,在1个方案中,所有的触发程序必须具有唯一的名称。位于不同方案中的触发程序可以具有相同的名称。在1个方案中,所有的触发程序名称必须是唯一的,除了该要求外,对于能够创建的触发程序的类型还存在其他限制。尤其是,对于具有相同触发时间和触发事件的表,不能有2个触发程序。例如,不能为某一表定义2个BEFORE INSERT触发程序或2个AFTER UPDATE触发程序。这几乎不是有意义的限制,这是因为,通过在FOR EACH ROW之后使用BEGIN ... END复合语句结构,能够定义执行多条语句的触发程序。请参见本节后面给出的示例。此外,激活触发程序时,对触发程序执行的语句也存在一些限制:·         触发程序不能调用将数据返回客户端的存储程序,也不能使用采用CALL语句的动态SQL(允许存储程序通过参数将数据返回触发程序)。·         触发程序不能使用以显式或隐式方式开始或结束事务的语句,如START TRANSACTION、COMMIT或ROLLBACK。
      

  3.   

    http://dev.mysql.com/doc/refman/5.1/zh/restrictions.html#routine-restrictionsI.1. 对存储子程序和触发程序的限制
    这里介绍的某些限制适用于所有的存储子程序,即存储程序和存储函数。某些限制仅适用于存储函数而不是存储程序。对存储函数的的所有限制也适用于触发程序。