简单的mysql“insert”存储过程不起作用

pxy2qtax  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(714)

我无法使这个存储过程加载/保存,这很奇怪,因为插入一行版本的过程工作没有问题。我没有试图重载,我给了两个过程和所有变量不同的名称,工作台告诉我问题在于“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
vkc1a9a2

vkc1a9a21#

实际上,它是在抱怨分号,而不是括号。您需要在过程之前设置一个不同的分隔符(之后再次重置它),以便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 ;

相关问题