간단한 프로 시저를 작성하려고하지만 첫 번째 매개 변수에서 구문 오류가 발생합니다. 가장 좋은 방법은 CREATE PROCEDURE의 구문을 올바르게 따르고 있다고 말할 수 있습니다.프로 시저 매개 변수에 MySql 구문 오류가 발생했습니다.
phpMyAdmin으로 데이터베이스에 액세스하는 것으로 제한됩니다. 여기에 생성 스크립트 나 실행하는 것을 시도하고있다 : 나는 /로 구분 기호를 변경하면 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
.
"@id INT, @oldIndex INT....
"근처에서 구문 오류가 발생합니다. 필자는 필자의 범위에서 완전히 명확하지 않기 때문에 더 많은 구분 문자 오류가 발생할 수 있다고 생각했다. 그게 문제라면, 매개 변수 선언이 아닌 세미콜론을 이해하지 못했을 때 프로 시저의 새로운 라인에 오류가있을 것이라고 나는 믿는다.
그냥'제거 @'. –