反对SQL触发器的原因是将数据插入到其他表中?

Ala*_*ger 5 sql database triggers

我被一个在我们公司拥有某种权限的人告诉我,在数据库中创建触发器以改变另一个表中的行是一个"数据库禁止".

我已经使用这种技术来创建默认的初始配置,自动维护审计日志,以及在连接到该数据库的异构应用程序内持续维护的各种其他事情.十多年来,我已经读到这是一种集中关系约束维护并从与数据交互的应用程序中获取责任的适当方式.

因此,我的BS仪表与此挂钩.我是否遗漏了一些根本错误的技术,这使得它一般都是不好的做法?

G M*_*ros 8

如果你对你的触发器代码很小心,那么它本身并没有什么坏处.有些人被错误的触发器代码咬了,然后决定触发器是坏的(尽管这是错误的触发器代码是问题).然后他们将其概括为"从不使用触发器".

另一个问题是....

以审计表为例,假设您有一个存储过程来更新表并将数据放入审计表中.现在假设您编写触发器代码以将数据放入审计表中.您最终可能会获得重复的审核数据.

  • +1 - 触发器就像其他任何工具一样.如果用锤子敲击拇指,这并不意味着所有的锤子都不好. (4认同)