因此,我在 MySQL 中创建一个函数,然后尝试向用户授予使用该函数的权限,但我无法这样做。这就是我正在做的:
DELIMITER $$
USE rxhelp36_scbn$$
DROP FUNCTION IF EXISTS `businessDayDiff` $$
CREATE FUNCTION `businessDayDiff` (start DATETIME, stop DATETIME) RETURNS TINYINT
NO SQL
BEGIN
RETURN 5 * (DATEDIFF(stop, start) DIV 7) + MID('0123444401233334012222340111123400001234000123440', 7 * WEEKDAY(start) + WEEKDAY(stop) + 1, 1);
END $$
GRANT EXECUTE ON PROCEDURE rxhelp36_scbn.businessDayDiff TO 'myuser'@'localhost';
这是我收到的错误:
Error Code: 1305. FUNCTION or PROCEDURE businessDayDiff does not exist
我不明白。我/刚刚/定义了该函数 - 它怎么不存在?
显然我需要做GRANT EXECUTE ON FUNCTION
代替GRANT EXECUTE ON PROCEDURE
.
你可能会认为如果GRANT EXECUTE ON PROCEDURE
仅适用于错误消息应该显示“错误代码:1305。PROCEDURE BusinessDayDiff 不存在”而不是“FUNCTION 或 PROCEDURE”的 PROCEDURE。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)