#mysql #user-defined-functions
#mysql #определяемые пользователем функции
Вопрос:
Я пытаюсь создать пользовательскую функцию, которая будет принимать идентификатор пользователя в качестве аргумента, а затем отображать столбец retailPrice для этой конкретной строки. Можете ли вы сказать мне, где я ошибаюсь?
DELIMITER $$
CREATE FUNCTION itemPrice(uId DECIMAL(8,2))
RETURNS DECIMAL(8,2)
READS SQL DATA
BEGIN
DECLARE r DECIMAL(8,2)
SELECT INTO retailPrice r FROM item WHERE userId = uId;
RETURN(r);
END$$
DELIMITER ;
Комментарии:
1.
SELECT retailPrice INTO r
2. Вам также понадобится
;
в концеDECLARE
строки.
Ответ №1:
Вы пропускаете ;
между DECLARE
инструкцией и SELECT
запросом. И у вас есть INTO
в неправильном месте в запросе.
РАЗДЕЛИТЕЛЬ $$
CREATE FUNCTION itemPrice(uId DECIMAL(8,2))
RETURNS DECIMAL(8,2)
READS SQL DATA
BEGIN
DECLARE r DECIMAL(8,2);
SELECT retailPrice INTO r FROM item WHERE userId = uId;
RETURN(r);
END$$
DELIMITER ;