在 MySQL 5.6.27 中创建触发器时出现奇怪的错误 [重复]
Posted
技术标签:
【中文标题】在 MySQL 5.6.27 中创建触发器时出现奇怪的错误 [重复]【英文标题】:Weird error when creating a trigger in MySQL 5.6.27 [duplicate] 【发布时间】:2018-08-24 14:43:14 【问题描述】:大家好,我正在尝试在我的一个数据库表中创建这个简单的触发器,但由于某种原因,我收到了这个奇怪的错误。我已经搜索过它,但我还没有找到解决这个问题的方法。有人能帮我吗?谢谢。
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)
【问题讨论】:
“出于某种原因” - 错误消息已经告诉您原因。 我建议您使用带有 foreiyn 键和ON DELETE CASADE
的 InnoDB 引擎。它做同样的事情,但比触发器更好。
【参考方案1】:
mysql 引擎说用户需要比执行更多的权限。这是因为创建一些修改表的触发器(如“删除”)将在执行时被记录(在此处阅读更多信息Binary Logging of Stored Programs
其中一个解决方案在链接内,简而言之,您可以在创建触发器之前执行此命令
mysql> SET GLOBAL log_bin_trust_function_creators = 1;
但也许您需要一些权限来更改 MySQL 上的全局变量。
【讨论】:
以上是关于在 MySQL 5.6.27 中创建触发器时出现奇怪的错误 [重复]的主要内容,如果未能解决你的问题,请参考以下文章