MySQL Function-код ошибки: 1415 не разрешено возвращать результирующий набор из функции
Я не пытаюсь вернуть результирующий набор, и я понятия не имею, что я делаю неправильно здесь. В MySQL 5.5
delimiter $$
CREATE FUNCTION CheckAccount(
i_username varchar(50)
) RETURNS integer
BEGIN
DECLARE v_validUserId int;
DECLARE v_validMembership int;
DECLARE o_Status integer;
SELECT vvalidUserId = u.UserId
FROM Users u
WHERE u.Username = i_username;
IF( v_validUserId IS NULL ) THEN
SET o_Status = 2; -- Invalid username
ELSE
SET o_Status = 1; -- Good
END IF;
IF(o_Status != 2 ) THEN
SELECT v_validMembership = 1
FROM Users u
JOIN UserMemberships um on um.UserId = u.userId
JOIN Memberships m on m.MembershipId = um.MembershipId
WHERE um.MembershipExpireDateTime > CURDATE()
AND u.UserId = v_validUserId;
IF( v_validMembership IS NULL ) THEN
SET o_Status = 3; -- Invalid membership
END IF;
END IF;
RETURN o_status;
END $$
DELIMITER ;
любая помощь будет высоко оценили!
1 ответов
Я не уверен, что вы можете назначить переменные таким образом, попробуйте использовать INTO
оператор для вашего выбора. Например:
SELECT
u.UserId INTO vvalidUserId
FROM
Users u
WHERE
u.Username = i_username;