Синтаксические ошибки хранимых процедур и функций mysql

0

Я работаю в mysql workbench 8.0.11 и имею проблемы с созданием хранимых процедур, а также функций. Чтобы быть ясным, я запускаю это в mysql через workbench mysql. Я вообще не использую какую-либо другую программу.

Я пытаюсь создать новую хранимую процедуру. Я продолжаю получать синтаксическую ошибку: "разделитель" не является допустимым входом в этой позиции, ожидая: CREATE.

Я проверил сайт mysql, чтобы убедиться, что мой синтаксис верен, и он соответствует. Еще одна вещь, которую следует отметить, это то, что я попытался запустить хранимую процедуру с использованием учета; (db, с которым я работаю), и я получаю ту же ошибку, за исключением того, что "использование" заменяет "разделитель". Таким образом, я не уверен, что это имеет какое-либо отношение к ключевому слову разделителя. Есть ли какие-то настройки в workbench mysql, которые я могу настроить, чтобы это выпрямилось? Кроме того, при попытке создать функцию я получаю ту же самую синтаксическую ошибку.

Я попытался создать как хранимую процедуру, так и функцию, не используя ключевое слово delimiter, или ключевое слово use, и когда я нажму кнопку приложения mysql.

Вот мой код:

delimiter $$
create procedure 'add_expense_category' (id int, name varchar(20))
begin
insert into expense_categories(expense_category_id, expense_category)
values(id, name);
end $$
delimiter ;

У кого-нибудь есть идеи о том, как это решить? Настройки для изменения? Что-нибудь?

Спасибо!

  • 0
    Что вы узнаете, прибегая к помощи сообщения об ошибке с & без ваших конкретных имен / строк?
  • 0
    КАЖДОЕ утверждение должно быть прекращено, ваша вставка не является. Пожалуйста, прочитайте dev.mysql.com/doc/refman/8.0/en/stored-programs-defining.html
Показать ещё 2 комментария
Теги:
mysql-workbench
mysql-error-1064
syntax-error

1 ответ

0

попробуй это

delimiter $$
create procedure 'add_expense_category' (id int, name varchar(20))
begin
insert into expense_categories(expense_category_id, expense_category)
values(id, name);
end $$
delimiter ;
  • 0
    Я пропустил добавление конечной точки с запятой в оператор вставки, когда набрал код в вопросе. Тем не менее, он был включен в мой оригинальный код. Я получаю ту же ошибку с точкой с запятой. Я также получаю его, когда меняю разделитель на точку с запятой.

Ещё вопросы

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