我正在尝试在Google CloudSQL上创建MySQL函数。这些函数在另一个服务器(VPS- Godaddy)上运行良好。
官方文档称不支持用户定义函数,但我正在尝试创建普通存储函数而非UDF。
查找错误 - MySQL数据库错误:您没有SUPER特权,并启用了二进制日志记录(您可能希望使用更少安全的log_bin_trust_function_creators变量)
使用Toad登录
使用的用户名为TAdmin
示例函数:
DELIMITER $$
DROP FUNCTION IF EXISTS `func_getEQId`$$
CREATE DEFINER=`TAdmin`@`%` FUNCTION `func_getEQId` (`pTopicId` INT(11))
RETURNS BIGINT(20)
READS SQL DATA DETERMINISTIC
BEGIN
DECLARE vQId bigint (20);
SELECT QId INTO vQId FROM quests WHERE...
RETURN vQId;
END$$
不想禁用二进制日志记录
log_bin_trust_function_creators
标志吗?通常启用该标志后,你就可以创建函数和存储过程了。 - gabidavilalog_bin_trust_function_creators
标志就解决了问题,我成功注册了UDF。谢谢。 - Ale