Я хочу создать хранимую процедуру, которая обрабатывает заказ с нашего сайта. Проблема в том, что при запуске скрипта возникает синтаксическая ошибка MySQL. Я очень новичок в MySQL Хранимые процедуры. Может ли кто-нибудь посмотреть мой код?Ошибка MySQL при создании хранимой процедуры
USE postbrood;
DELIMITER //
CREATE PROCEDURE MaakBestelling(IN KlantIDParam INT, IN ProductIDArray VARCHAR(255), IN AantalArray VARCHAR(255))
BEGIN
DECLARE BestelID INT DEFAULT 0;
DECLARE ArrayLenght INT DEFAULT 0;
DECLARE Counter INT DEFAULT 0;
SET ArrayLenght = LENGTH(ProductIDArray) - LENGTH(REPLACE(ProductIDArray, ',', '')) + 1;
INSERT INTO bestelling(klantID) VALUES (KlantIDParam);
SET BestelID = LAST_INSERT_ID();
WHILE Counter < ArrayLenght DO
INSERT INTO bestelregel VALUES (SUBSTRING_INDEX(ProductIDArray,',',Counter),BestelID,SUBSTRING_INDEX(AantalArray,',',Counter));
SET Counter = Counter + 1;
END WHILE;
END//
DELIMITER ;
Заранее благодарен!
В вашем 'END' отсутствует разделитель, который вы ранее определили. Это должно быть 'END //' не просто 'END' –
** Следующая ошибка **: 09:43:21 \t CREATE PROCEDURE MaakBestelling (IN KlantIDParam INT, IN ProductIDArray VARCHAR (255), IN AantalArray VARCHAR (255)) НАЧАТЬ DECLARE BestelID INT DEFAULT 0 \t Код ошибки: 1064. У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с '' в строке 4 \t 0.000 sec –