我需要在我们公司的 MySQL 服务器上添加一个新的存储过程。因为它只是略有不同,我使用了一个已经存在的,添加了附加字段并更改了过程的名称。现在奇怪的是,当我想执行该语句时,它返回:
Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 3
引用此行中的 0: SET @update_id := 0; 奇怪的是,我使用 SHOW CREATE PROCEDURE 查询了该存储过程。它保存在我们的数据库中并且工作正常。我只是不能将它用作新的存储过程(无论我是尝试将它应用到新的测试数据库还是通过给它一个新名称在现有数据库上使用它)。我在互联网上搜索了解决方案。不幸无济于事。我什至设置了一个新数据库,其中包含一个新表和一些演示值,我尝试在其中执行原始的、未更改的存储过程。它返回完全相同的错误。
这是我正在谈论的当前使用和工作的存储过程:
CREATE DEFINER=`root`@`localhost` PROCEDURE `customer_getcard`(IN Iinstance INT, IN Itimebuy DOUBLE, IN Iprice DECIMAL(10,2), IN Itariff INT, IN Icomment VARCHAR(128))
BEGIN
SET @update_id := 0;
UPDATE customer_shop SET state = 1, id = (SELECT @update_id := id), instance=Iinstance, timebuy=Itimebuy, price=Iprice, comment=Icomment WHERE tariff=Itariff AND state = 0 LIMIT 1;
SELECT * FROM customer_shop WHERE id = @update_id;
END
我希望你们能帮助我,因为我完全不知道出了什么问题。:/
问候,马克