単純なプロシージャを作成しようとしていますが、最初のパラメータで構文エラーが発生しています。最高の私はCREATE PROCEDUREの構文を正しく従っていると私は言うことができます。プロシージャパラメータのMySql構文エラー
phpMyAdminでデータベースにアクセスすることに限定されています。
DROP PROCEDURE IF EXISTS product_index_swap/
CREATE PROCEDURE product_index_swap (@id INT, @oldIndex INT, @newIndex INT)
BEGIN
DECLARE @swapID;
SET @swapID = (SELECT `id` FROM `product` WHERE `order_index` = @newIndex LIMIT 1);
UPDATE `products` SET `order_index` = (CASE WHEN `id` = @id THEN @newIndex
WHEN `id` = @swapID THEN @oldIndex END)
WHERE `id` IN (@id, @swapID);
END
私は/に区切り文字を変更するにはphpMyAdminの上のオプションを使用しています:ここで私が実行しようとしているスクリプトを作成です。
"@id INT, @oldIndex INT....
"の構文エラーが表示されます。私は、私がそれらの範囲で完全にはっきりしていないので、より多くのデリミタエラーに遭遇するかもしれないと思った。もしそれが問題であれば、プロシージャの新しい行にエラーがあり、セミコロンを理解できなかったときはパラメータ宣言ではなく、エラーであると思います。
ただ、 '@'を削除します。 –