2011-09-22 21 views
0

尝试运行该SQL:的MySQL:触发器/无定界符SUPER

DELIMITER $$ 

CREATE TRIGGER crypt_f 
BEFORE INSERT ON c_data_test 
FOR EACH ROW 
BEGIN 
UPDATE c_data_test 
SET f_id = ENCRYPT(f_id, 'key'); 
END$$ 

DELIMITER ; 

给出了这样的错误:

ERROR 1227 (42000): Access denied; you need the SUPER privilege for this operation

我们不允许我们的主机超级访问。我如何创建这个触发器?

+0

你需要一个新的主机。 – blockhead

回答

3

您将不得不要求主机的DBA为您运行触发器创建语句。 MySQL的最新版本允许非SUPER用户创建触发器(MySQL 5.1.6及更高版本)。但是,如果二进制日志记录打开,您仍然需要SUPER权限。因此,首先仔细检查MySQL的运行版本,如果其MySQL 5.1.6或更高版本和二进制日志记录被关闭,请求主机DBA的TRIGGER权限,否则您将不得不要求DBA创建为你的触发器。