关于MySQL';扳机

关于MySQL';扳机,mysql,triggers,Mysql,Triggers,我知道它从5.1版开始提供,但是: 它稳定吗 当对特定列而不是整个表执行insert/update操作时,是否可能触发事件 根据我的经验,是的,完全是这样 不仅如此,您还可以在触发器主体中添加一个检查:IF(OLD.col NEW.col,…) 根据我的经验,是的 触发器功能非常有限。您有“为每一行”选项,但没有“何时”选项。在触发器内部可以执行的操作也非常有限。如果您希望稍后更改需求(即项目将继续),我不会选择在mysql触发器中执行业务逻辑。如果它包含一些简单的检查或一致性更新,它可以做得很

我知道它从5.1版开始提供,但是:

  • 它稳定吗
  • 当对特定列而不是整个表执行insert/update操作时,是否可能触发事件
  • 根据我的经验,是的,完全是这样
  • 不仅如此,您还可以在触发器主体中添加一个检查:
    IF(OLD.col NEW.col,…)
  • 根据我的经验,是的
  • 触发器功能非常有限。您有“为每一行”选项,但没有“何时”选项。在触发器内部可以执行的操作也非常有限。如果您希望稍后更改需求(即项目将继续),我不会选择在mysql触发器中执行业务逻辑。如果它包含一些简单的检查或一致性更新,它可以做得很好

  • 操作会因为触发器而变慢吗?我的意思是它会等待触发器完成吗?自从我开始在半大型系统上使用它以来,我的性能没有明显的变化。在开始使用触发器之前,你应该考虑的事情是,你想将数据库和业务逻辑混合在一起。我个人建议不要使用它,我只是用它来给一个糟糕的db带来一些意义。触发器实际上是在5.0中引入的,而不是在5.1中引入的。如果您想要完全的触发器支持,请迁移到PostGresSQL。但在大多数实际应用中,我发现MySQL触发器工作得很好。