之后我要删除分号END
。
...
END
|
DELIMITER ;
请发表评论,在声明新的定界符时不能使用当前的定界符。这听起来令人困惑,但是请考虑是否要执行以下操作:
DELIMITER |;
现在,MysqL会认为分隔符为“ |;”。(两个字符,一个竖线和一个分号)。如果考虑到这一点,DELIMITER
必须 由MysqL客户端以特殊方式对待。这是当前定界符 不能 遵循的唯一语句。
因此,在将分隔符设置为管道时,请执行以下操作:
DELIMITER |
将其设置回分号时,请执行以下操作:
DELIMITER ;
FWIW,我在MysqL 5.0.75的本地测试数据库上运行了以下命令,没有错误:
DROP FUNCTION IF EXISTS PersonName;
DELIMITER |
CREATE FUNCTION PersonName( personID SMALLINT )
RETURNS CHAR(20)
BEGIN
DECLARE pname CHAR(20) DEFAULT '';
SELECT name INTO pname FROM family WHERE ID=personID;
RETURN pname;
END
|
DELIMITER ;