Для многострочных операторов нельзя использовать один и тот же символ (по умолчанию «;») для разделения отдельных операторов в определении функции и всего оператора CREATE
. Если вы попытаетесь, оператор создания заканчивается на первом «;» (в примере кода это после первого DECLARE
). Поскольку синтаксическая ошибка оператора находится в конце усеченного оператора, в сообщении об ошибке указывается '' как часть оператора, где произошла ошибка.
В клиенте командной строки вы можете использовать команду delimiter
, чтобы изменить используемый клиентом разделитель (например, ";;", а затем завершить оператор создания следующим разделителем:
delimiter ;;
CREATE FUNCTION F_test (topsbwynum INTEGER)
...
END;;
delimiter ;
В phpMyAdmin есть поле «разделитель», которое выполняет ту же цель.