当特定的数据库用户通过运行脚本进行更改时,是否可以绕过触发器?
在Informix中触发器的when子句中,我们可以这样做:
CREATE TRIGGER trigger_name
update on table_name
referencing old as olddata new as newdata
for each row when(USER <> 'a specific database user')
(…triggered actions…)
CREATE TRIGGER上Informix 12.10的文档最终指向WHEN condition描述。
只要您可以预测何时创建触发器,哪个用户就不应触发该动作,您应该能够编写类似WHEN (USER != 'exempt')
的内容,但是要使其动态地工作将更加困难。您可能能够在WHEN条件下调用存储过程,该条件评估当前当前用户是否可以触发该操作。除了通过在WHEN条件下或作为触发操作使用存储过程之外,它可能无法有意义地完成。