Зачем временно изменять разделитель команд MySQL при определении функции из нескольких операторов?
Чтобы целочисленные параметры преобразовывались в строки.
Чтобы * выполнял умножение, а не выбирал столбцы.
*
Чтобы функция получила временное второе имя.
Чтобы точки с запятой внутри тела функции не завершили преждевременно весь оператор CREATE FUNCTION.
CREATE FUNCTION