Синтаксическая ошибка хранимой процедуры MySQL: если еще

0

У меня есть MySQL db, и я хочу написать запрос, содержащий инструкции IF ELSE. Первоначально я попытался использовать IF ELSE сам по себе, но после неоднократного отказа заставить его работать, я читал, что инструкции IF ELSE в MySQL должны быть внутри хранимых процедур. Однако я не могу создать хранимую процедуру без синтаксической ошибки. Вот очень простой пример:

DELIMITER //
CREATE OR REPLACE PROCEDURE getUsers()
BEGIN
  SELECT * FROM users;
END //
DELIMITER ;

Я получаю следующее сообщение об ошибке:

ERROR 1064 (42000): у вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с "PROCEDURE getUsers() BEGIN select * от пользователей; END 'в строке 1

Я прочитал множество других сообщений, связанных с этой проблемой, но ни одна из предложенных исправлений, похоже, не работает для моего случая (в частности, добавление разделителя). Что может быть причиной этой ошибки?

Теги:
syntax
syntax-error

1 ответ

0

Забавно, после нескольких часов попыток понять это, мне довелось найти ответ сразу после публикации моего вопроса. Мне нужно было удалить CREATE OR REPLACE PROCEDURE getUsers() и заменить его на

DROP DATABASE IF EXISTS getUsers;... CREATE PROCEDURE getUsers()

Ещё вопросы

Сообщество Overcoder
Наверх
Меню