MySql存储过程创建错误
我试图用下面的代码在我的mysql数据库中创建一个存储过程。我遇到一个错误。请帮助我解决 我的MySQl版本是5.0.51bMySql存储过程创建错误,mysql,stored-procedures,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_NA
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
错误:
错误代码:1064 您的SQL语法有错误;查看与MySQL服务器版本对应的手册,了解第5行“END”附近使用的正确语法
(0毫秒)值列表中有一个额外的变量
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
尝试删除并查看是否仍然出现错误,如果尚未更改分隔符。值列表中有一个额外的变量
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
尝试删除并查看是否仍然出现错误,如果尚未更改分隔符。正如斯福森所说,删除
lname
此外,在插入的末尾添加分号:
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
创建过程tv\u insert\u user(firstName VARCHAR(25)、lastName VARCHAR(25)、emailId VARCHAR(22)、countryId INT、stateId INT)
开始
将值(firstName、lastName、EMAIL、COUNTRY\u ID、STATE\u ID)插入到tv\u user\u master(名字、姓氏、电子邮件、国家ID、stateId)中;
结束
正如斯福森所说,删除
lname
此外,在插入的末尾添加分号:
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
创建过程tv\u insert\u user(firstName VARCHAR(25)、lastName VARCHAR(25)、emailId VARCHAR(22)、countryId INT、stateId INT)
开始
将值(firstName、lastName、EMAIL、COUNTRY\u ID、STATE\u ID)插入到tv\u user\u master(名字、姓氏、电子邮件、国家ID、stateId)中;
结束
lname不是错误消息的内容。您需要指定不同的分隔符。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 ;
一旦您解决了分隔符位,您可能会得到有关INSERT命令和额外属性(lastname两次)的错误。lname不是错误消息的内容。您需要指定不同的分隔符。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 ;
一旦您解决了分隔符位,您可能会在INSERT命令和额外属性(lastname两次)方面出现错误。是的,我正在寻找这个答案。现在它已经成功了。谢谢你们的支持是的,我一直在寻找这个答案。现在它成功了。谢谢大家的支持