Бих премахнал точката и запетаята след 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 ;