MySQL 尝试创建检查数据的函数时出现错误代码?
MySQL error code when trying to create a function that checks data?
所以我的数据库中有两个 table 包含会员 ID。我正在尝试创建一个存储函数,当成员不在 table A 中但在 table B 中时 returns 0。
这是我的代码:
Delimiter //
CREATE FUNCTION DoesMemberExist ( mid char(10))
RETURNS INTEGER
READS SQL DATA
BEGIN
IF(((SELECT COUNT(*)
FROM members
WHERE member_id = mid) = 0) AND ((SELECT COUNT(*)
FROM rent_equipment_log
WHERE member_id = mid) > 0)) THEN
RETURN 0;
ELSE RETURN 1;
END IF;
END;
我得到的错误是 1064,它说我的语法有问题,但我不知道哪里出了问题?提前致谢!
您可以改用 EXISTS()
。此外,缺少 END IF
以结束 IF
子句。
DELIMITER //
CREATE FUNCTION DoesMemberExist ( mid char(10))
RETURNS INTEGER
READS SQL DATA
BEGIN
IF( NOT EXISTS(SELECT 1 FROM members
WHERE member_id = mid)
AND
EXISTS(SELECT 1 FROM rent_equipment_log
WHERE member_id = mid) ) THEN
RETURN 0;
ELSE RETURN 1;
END IF; -- We need to END the IF clause
END //
DELIMITER ; -- Redefine the delimiter back to ;
所以我的数据库中有两个 table 包含会员 ID。我正在尝试创建一个存储函数,当成员不在 table A 中但在 table B 中时 returns 0。
这是我的代码:
Delimiter //
CREATE FUNCTION DoesMemberExist ( mid char(10))
RETURNS INTEGER
READS SQL DATA
BEGIN
IF(((SELECT COUNT(*)
FROM members
WHERE member_id = mid) = 0) AND ((SELECT COUNT(*)
FROM rent_equipment_log
WHERE member_id = mid) > 0)) THEN
RETURN 0;
ELSE RETURN 1;
END IF;
END;
我得到的错误是 1064,它说我的语法有问题,但我不知道哪里出了问题?提前致谢!
您可以改用 EXISTS()
。此外,缺少 END IF
以结束 IF
子句。
DELIMITER //
CREATE FUNCTION DoesMemberExist ( mid char(10))
RETURNS INTEGER
READS SQL DATA
BEGIN
IF( NOT EXISTS(SELECT 1 FROM members
WHERE member_id = mid)
AND
EXISTS(SELECT 1 FROM rent_equipment_log
WHERE member_id = mid) ) THEN
RETURN 0;
ELSE RETURN 1;
END IF; -- We need to END the IF clause
END //
DELIMITER ; -- Redefine the delimiter back to ;