设置MySQL触发器

Unk*_*ech 10 mysql triggers

我听说过触发器,我有几个问题.
什么是触发器?
我该如何设置它们?
除了典型的SQL内容之外,是否应该采取任何预防措施?

Mat*_*son 15

触发器允许您在某些事件发生时在数据库中执行功能(例如,插入表中).

我不能具体评论mysql.

注意事项:触发器非常诱人,当你第一次开始使用它们时,它们似乎是解决各种问题的灵丹妙药.但是,它们会让"神奇"的东西发生,如果你不知道数据库里面的东西,它看起来真的很奇怪(例如插入其他表,输入数据变化等).在将事物作为触发器实现之前,我会认真考虑在模式周围强制使用API​​(最好是在数据库中,但如果不能,则在外部).

我仍然使用的一些东西触发

  • 跟踪"date_created"和"date_last_edited"字段
  • 插入"ID"(在oracle中,没有自动id字段)
  • 保持变革的历史

你不想使用的东西触发器

  • 业务规则/逻辑
  • 连接数据库外部的任何东西(例如webservice调用)
  • 访问控制
  • 任何非事务性的东西(你在触发器中做的任何东西必须能够与事务回滚)