StrangeAttractor
@StrangeAttractor

Как правильно расставлять точки с запятыми при написании пользовательских функций в MySQL?

Возьмём, например, такую простую функцию:

CREATE FUNCTION MyFx(`MyArg` VARCHAR(255)) RETURNS VARCHAR(255)
  DETERMINISTIC
BEGIN
  RETURN (SELECT `val` FROM `table` WHERE `arg` = `MyArg`);
END


Работает, но выглядит стрёмно. Как правильно расставить ; по строгому стандарту?
  • Вопрос задан
  • 2412 просмотров
Решения вопроса 1
alexclear
@alexclear
A cat
На процедурные расширения языка SQL существует строгий стандарт? O___O И давно? Что-то я пропустил...
Зачем Вы хотите использовать процедурный SQL? Это темная сторона Силы, подумайте дважды - а стоит ли?

Итого:
В теле процедуры разделитель ставится после каждого выражения.
Остальное при объявлении процедуры пишется согласно BNF.
Пример здесь.
Чтобы в теле процедуры разделителем можно было пользоваться, его при определении процедуры подменяют, как это делать - показано в примерах по ссылке.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы