MySql存储过程创建错误

Shy*_*yju 0 mysql stored-procedures

我试图在我的mysql数据库中使用下面的代码创建一个存储过程.我收到一个错误.请帮我解决

我的MySQl版本是5.0.51b

CREATE PROCEDURE tv_insert_user(IN firstName VARCHAR(25),
IN lastName VARCHAR(25), IN emailId VARCHAR(22),IN countryId INT,IN stateId INT)
  BEGIN
     INSERT INTO tv_user_master(FIRST_NAME,LAST_NAME,EMAIL,COUNTRY_ID,STATE_ID) VALUES(firstName,lastName,lname,emailId,countryId,stateId)
  END
Run Code Online (Sandbox Code Playgroud)

错误:


错误代码:1064您的SQL语法有错误; 检查与您的MySQL服务器版本对应的手册,以便在第5行的"END"附近使用正确的语法(0 ms)

Com*_*een 5

lname-thing不是错误消息的内容.您需要指定不同的分隔符.MySQL命令的默认分隔符是分号,但分号在语句末尾的存储过程中使用.在此示例中,我将分隔符更改为//,并使用它来结束过程.这允许我在块内使用分号.

DELIMITER //

CREATE PROCEDURE tv_insert_user(IN firstName VARCHAR(25),
IN lastName VARCHAR(25), IN emailId VARCHAR(22),IN countryId INT,IN stateId INT)
BEGIN
   INSERT INTO tv_user_master(FIRST_NAME,LAST_NAME,EMAIL,COUNTRY_ID,STATE_ID)   VALUES(firstName,lastName,emailId,countryId,stateId);
END;
//

DELIMITER ;
Run Code Online (Sandbox Code Playgroud)

一旦解决了分隔符位,您可能会收到有关INSERT命令和额外属性(lastname两次)的错误.