我正在尝试在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行
答案 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 ;