在MySQL 5.6.27中创建触发器时出现奇怪的错误

时间:2018-08-24 14:43:14

标签: mysql sql triggers

大家好,我正在尝试在数据库表之一中创建此简单触发器,但由于某种原因,我遇到了这个奇怪的错误。我已经搜索过,但是没有找到解决此问题的方法。有人能帮我吗?谢谢。

DELIMITER $$

CREATE DEFINER=CURRENT_USER TRIGGER `dataset`.`student_BEFORE_DELETE` BEFORE 
DELETE ON `student` 
FOR EACH ROW
BEGIN
delete from student_grades where std_id = old.student_id;
END
$$

DELIMITER ;

错误:

ERROR 1419 (HY000): You do not have the SUPER privilege and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)

1 个答案:

答案 0 :(得分:0)

MySQL引擎说用户需要比执行更多的特权。这是因为创建某些修改表的触发器(作为“删除”)将在执行时记录(在此处Binary Logging of Stored Programs

中了解更多信息)

其中一种解决方案是链接内,简而言之,您可以在创建触发器之前执行此命令

mysql> SET GLOBAL log_bin_trust_function_creators = 1;

但是也许您需要一些特权才能在MySQL上更改全局变量。