У меня есть эта таблица (с именем Sandbox):Как объявить хранимую процедуру с помощью одной входной переменной в MySQL?
+----+-----------+---------+
| ID | statecode | country |
+----+-----------+---------+
| 1 | ITA | Italy |
| 2 | ESP | Spain |
| 3 | GER | Germany |
| 4 | ESP | Espana |
+----+-----------+---------+
Я пытаюсь создать хранимую процедуру, которая дает мне все названия стран от одного параметра (statecode).
Например
CALL GetCountryNameFromCode('ITA');
должен вернуть "Италии"
CALL GetCountryNameFromCode('ESP');
должен вернуть "Испания", "Espana"
После this guide я написал следующий код:
DELIMITER //
CREATE PROCEDURE GetCountryNameFromCode (IN MyStateCode varchar(3))
BEGIN
SELECT country
FROM Sandbox
WHERE statecode = MyStateCode
END; //
DELIMITER ;
, но когда я исполню его, PhpMyAdmin дает мне следующую ошибку:
#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 'END' at line 6
, что случилось с моим кодом? Я запускаю версию MySQL 5.6.30 - Распределение источников (AMPPS на MacOS)
================================================================================================================================================================= == EDIT ==============================
Сейчас я бегу это:
DELIMITER //
CREATE PROCEDURE GetCountryNameFromCode (IN MyStateCode varchar(3))
BEGIN
SELECT country
FROM Sandbox
WHERE statecode = MyStateCode;
END //
DELIMITER ;
что дает мне следующую ошибку:
#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 'DELIMITER' at line 1
Несмотря на сообщение об ошибке, SP был создан и работает отлично.
Я изменил код со всеми вашими ответами и теперь он работает. Странным фактом является то, что он все еще дает мне сообщение об ошибке, когда я запускаю код для его создания. Я отправляю код, который я использовал для создания SP в первом вопросе. – Nicolaesse