当我可以在应用层验证数据时,为什么要使用MySQL Trigger

时间:2014-11-08 09:35:32

标签: php mysql triggers database-performance

当我可以检查应用程序层中的任何数据(例如,使用PHP或JavaScript)然后将其发送到数据库时,我真的不明白使用MySQL Trigger的原因。那么,当我必须使用触发器的情况是什么时候?

我在这里阅读了触发器:http://www.mysqltutorial.org/sql-triggers.aspx

1 个答案:

答案 0 :(得分:4)

不确定您正在谈论的性能问题。而且,你弄错了;在您的应用程序级别,您检查数据的健全性或检查恶意数据。

然而,触发器用于根据触发事件采取某些操作,其中触发事件可以是任何DML语句(插入/更新/删除)。触发器不用于数据验证或数据的健全性检查。

同样,在一个注意事项上应该注意DB级别的事情;应该传递给DB。

例如,在您的应用程序级别,您可以检查输入的Age是否为文本而且应该是数字,但在触发器中,您将检查输入Age是否在特定范围内(例如,年龄<= 100)然后根据支票做一些动作。