创建MySQL函数时出现1064语法错误,请求协助排查问题
排查MySQL函数错误代码1064的语法问题
你的代码触发1064语法错误的核心原因是DELIMITER设置后的语句结束符使用错误,具体修正点及修正后的代码如下:
错误原因
当你将DELIMITER改为//后,原有的分号;不再作为语句结束标记,因此END后面的分号属于多余语法,会被MySQL判定为非法。
修正后的完整代码
DELIMITER // CREATE FUNCTION TaxBracket (SalaryPT FLOAT) RETURNS FLOAT BEGIN DECLARE TB FLOAT; IF SalaryPT * 52 > 36400 THEN SET TB = 0.4; ELSE SET TB = 0.2; END IF; RETURN TB; END // DELIMITER ;
额外说明
如果修正后仍然报错,可能是MySQL默认禁止创建函数,可先执行SET GLOBAL log_bin_trust_function_creators = 1;(需管理员权限),这属于配置权限问题,不属于本次语法错误范畴。
内容的提问来源于stack exchange,提问作者Jaisal Singhani
相关产品推荐
相关产品推荐

