创建function时,总是报下面的错误。可是检查过,没有什么语法问题。其实有些是分隔符引起的。
#1064 – You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ” at line 4
在mysql中默认分号(;)为分隔符,也就是说,遇到分号,就认为你输入完了,需要系统执行了。但在创建函数的过程中,输入完一句命令,就需要使用分号分割,这样就产生了冲突。解决方案就是临时切换分隔符。
DELIMITER // -- 先切换成 //
CREATE FUNCTION GetEmployeeInformationByID(id INT)
RETURNS VARCHAR(300) -- 字符串的长度不能少,否则会报语法错误
BEGIN
RETURN(SELECT CONCAT('employee name:',employee_name,'---','salary: ',employee_salary) FROM employees WHERE employee_id=id);
END// -- 表示到这里才是结束
DELIMITER ; --再切换回去
以上所有的方式都是基于sql或命令的方式。