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