简单的Mysql“插入”存储过程将无法正常工作

时间:2018-04-16 16:11:11

标签: mysql procedure

我无法使这个存储过程加载/保存,这很奇怪,因为插入一行版本的过程没有问题。我不是试图重载,我给了两个程序和所有变量不同的名称工作台告诉我问题在于“flavidtwo”之后的括号。颠倒插入的顺序并不能解决问题,它只是开始抱怨另一条线的结束。

CREATE PROCEDURE `LinkTwoFlavors`(in selzidtwo INT, in flavidone INT, in flavidtwo INT)
BEGIN

INSERT INTO `readinga_seltzer`.`AscSeltzerFlavor` (`SeltzerID`,`FlavorID`) VALUES (selzidtwo, flavidtwo);
INSERT INTO `readinga_seltzer`.`AscSeltzerFlavor` (`SeltzerID`,`FlavorID`) VALUES (selzidtwo, flavidone);

END

1 个答案:

答案 0 :(得分:1)

实际上,它抱怨的是分号,而不是括号。您需要在程序之前设置不同的DELIMITER(之后再次重置),以便mysql知道将整个过程视为单个语句,否则它认为它应该在您的第一个INSERT语句之后结束。您的程序应该如下所示

DELIMITER //
CREATE PROCEDURE `LinkTwoFlavors`(in selzidtwo INT, in flavidone INT, in flavidtwo INT)
BEGIN

INSERT INTO `readinga_seltzer`.`AscSeltzerFlavor` (`SeltzerID`,`FlavorID`) VALUES (selzidtwo, flavidtwo);
INSERT INTO `readinga_seltzer`.`AscSeltzerFlavor` (`SeltzerID`,`FlavorID`) VALUES (selzidtwo, flavidone);

END //

DELIMITER ;