【发布时间】:2018-12-13 08:43:44
【问题描述】:
我在 mysql workbench 8.0.11 中工作,在创建存储过程和函数时遇到问题。为了清楚起见,我通过 mysql 工作台在 mysql 中运行它。我根本没有使用任何其他程序。
我正在尝试创建一个新的存储过程。我不断收到语法错误:“分隔符”在此位置没有有效输入,期待:CREATE。
我已经检查了 mysql 网站以确保我的语法正确并且匹配。另一件需要注意的是,我已经尝试使用会计来启动存储过程。 (我正在使用的数据库)并且我得到了同样的错误,除了“使用”代替了“分隔符”。所以,我不确定它与 delimiter 关键字本身有什么关系。 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 ;
有人对如何解决这个问题有任何想法吗?要更改的设置?有什么事吗?
谢谢!
【问题讨论】:
-
你在谷歌搜索错误信息时学到了什么?
-
每个语句都必须终止,您的插入不是。请阅读dev.mysql.com/doc/refman/8.0/en/stored-programs-defining.html
-
抱歉,我错过了插入语句末尾的分号。我在原始代码中确实有这个,只是错过了在这里添加它。但是,这不会改变错误。我继续收到相同的错误消息。
-
我已经用谷歌搜索了很多问题,但没有找到与我的特定问题相关的任何内容。我发现的大多数看起来可能相关的问题最终都与使用 php 或其他程序的人有关。
标签: mysql syntax-error mysql-workbench mysql-error-1064