Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySql存储过程创建错误_Mysql_Stored Procedures - Fatal编程技术网

MySql存储过程创建错误

MySql存储过程创建错误,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

我试图用下面的代码在我的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
错误:


错误代码: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两次)方面出现错误。

是的,我正在寻找这个答案。现在它已经成功了。谢谢你们的支持是的,我一直在寻找这个答案。现在它成功了。谢谢大家的支持