我需要创建一个存储函数来按需禁用触发器。 首先,我有一个参数@disable_triggers,我可以将其设置为“全部”或特定的触发器名称。在触发器中,我将有一个变量,我将其分配给过程返回值,如果它是真的,我不会执行触发器代码。因此,在过程中我需要以某种方式处理具有特定触发器名称的情况。
CREATE PROCEDURE `DisableTriggers`()
BEGIN
IF(@disable_triggers = 'all') THEN
RETURN 1;
END IF;
IF (@disable_triggers CONTAINS 'Specific trigger name') THEN
Return true to disable specific trigger. <<-- how to return it here.
END IF;
END
所以我问的问题是如何处理具有特定触发器的情况返回什么。
最佳答案
一般来说,没有办法禁用 MySQL/MariaDB 中的触发器。 您只能删除触发器并稍后重新创建它们,但如果您的环境负载较高,请注意 MDL 锁。
您仍然可以选择使用 session 变量执行一些技巧,例如 MySQL disable all triggers
关于mysql - SQL 禁用触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37131379/