在mysql中运行存储过程时出错

时间:2016-01-17 11:55:47

标签: mysql stored-procedures jdbc

我正在尝试在mysql中执行存储过程,下面是命令:

create procedure insertIntoEMP (IN name1 VARCHAR (50),IN sal1 INT) 
BEGIN 
   insert into student values (name1, sal1) 
END;

但是我收到了一个错误。我在mysql客户端运行上面的命令。请让我知道我哪里出错了。

  

错误1064(42000):您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以便在' END'附近使用正确的语法。在第1行

1 个答案:

答案 0 :(得分:3)

;之后添加insert

create procedure insertIntoEMP (IN name1 VARCHAR (50),IN sal1 INT) 
BEGIN 
   insert into student(name, sal) values (name1, sal1) ;
END;

SqlFiddleDemo

将列列表添加到INSERT INTO tab(col_list) VALUES ...是一种很好的做法。

您可能需要根据您的客户定义delimiter

  

如果使用mysql客户端程序来定义存储的程序   包含分号字符,出现问题。 默认情况下,mysql   它本身将分号识别为语句分隔符,因此您必须这样做   暂时重新定义分隔符以使mysql传递整个分隔符   存储的程序定义到服务器。

DELIMITER $$
create procedure insertIntoEMP (IN name1 VARCHAR (50),IN sal1 INT) 
BEGIN 
   insert into student(name, sal) values (name1, sal1) ;
END$$ 
DELIMITER ;