私たちのサイトからの注文を処理するストアドプロシージャを作成したいと思います。問題は、私がスクリプトを実行すると、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作成手順MaakBestelling(ProductIDArray VARCHAR(255)、IN AantalArray VARCHAR(255)内のKlantIDParam INTでIN) DECLARE BestelID INT DEFAULT 0 \tエラーコード:1064. SQL構文にエラーがあります。あなたのMySQLサーバのバージョンに対応するマニュアルをチェックして正しい構文を確認してください。近くの ''行4で\t 0.000秒 –