相关疑难解决方法(0)

如何在MySQL中禁用触发器?

在我的MySQL数据库中,我有一些触发器ON DELETEON INSERT.有时我需要禁用一些触发器,我必须DROP例如

DROP TRIGGER IF EXISTS hostgroup_before_insert //   
Run Code Online (Sandbox Code Playgroud)

并重新安装.是否有任何SET triggers hostgroup_before_insert = 0类似我们的外键快捷方式:

mysql> SELECT version();
+-------------------------+
| version()               |
+-------------------------+
| 5.1.61-0ubuntu0.10.10.1 |
+-------------------------+
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)

编辑答案MySQL中没有内置的服务器系统变量TRIGGER_CHECKS.
一个简单的解决方法是改为使用用户定义的会话变量.

#FALSE value overrides trigger type settings
SET @TRIGGER_CHECKS = [TRUE|FALSE]; 

SET @TRIGGER_BEFORE_INSERT_CHECKS = [TRUE|FALSE];
SET @TRIGGER_AFTER_INSERT_CHECKS = [TRUE|FALSE];

DELIMITER $$
DROP TRIGGER IF EXISTS `yearCheck_beforeInsert` $$
CREATE DEFINER=`root`@`localhost` TRIGGER `yearCheck_beforeInsert`
BEFORE INSERT ON `movies` FOR …
Run Code Online (Sandbox Code Playgroud)

mysql database-trigger

18
推荐指数
1
解决办法
6万
查看次数

标签 统计

database-trigger ×1

mysql ×1