MySQL 6.3 - 在语法中创建过程错误

Posted

技术标签:

【中文标题】MySQL 6.3 - 在语法中创建过程错误【英文标题】:MySQL 6.3 - Create Procedure Error in Syntax 【发布时间】:2016-06-10 23:46:04 【问题描述】:

我正在尝试创建存储过程但出现错误。存储过程如下

CREATE PROCEDURE addSection (IN sectionname varchar(50), IN sectiondetail varchar(50)) 
BEGIN 
INSERT INTO inquiry (sectionname,sectiondetail,entrytime) VALUES (sectionname,sectiondetail,now()); 
END// delimiter;

但我收到如下错误

错误代码:1064。您的 SQL 语法有错误;检查与您的 mysql 服务器版本相对应的手册,以在第 3 行 0.00026 秒处的 '' 附近使用正确的语法

我正在使用 MySQL Workbench 6.3

请帮忙...

【问题讨论】:

MySQL 不是 SQL Server 【参考方案1】:

先运行以下命令,将分隔符切换为 //:

delimiter //

然后运行你有一个小的修改(比较最后一行):

CREATE PROCEDURE addSection (IN sectionname varchar(50), IN sectiondetail varchar(50)) 
BEGIN 
    INSERT INTO inquiry (sectionname,sectiondetail,entrytime) VALUES (sectionname,sectiondetail,now()); 
END//

如果没有切换分隔符,当客户端看到插入语句末尾的分号时,它会认为过程的定义提前结束了——这就是语法错误的原因。

您可以随时将分隔符切换回 ;通过这样做:

delimiter ;

【讨论】:

以上是关于MySQL 6.3 - 在语法中创建过程错误的主要内容,如果未能解决你的问题,请参考以下文章

mySql 中创建过程的语法错误

在 MySQL/MariaDB 中创建存储过程时出错

如何在mysql数据库中创建一个包含请求的存储过程

无法在 phpmyadmin 中创建程序

mysql - 在存储过程中创建事件

当我尝试在 mysql 中创建触发器时出现语法错误