尝试创建检查数据的函数时出现mysql错误代码?

guykilcj  于 2021-06-19  发布在  Mysql
关注(0)|答案(1)|浏览(414)

因此,我的数据库中有两个表包含一个成员id。我试图创建一个存储函数,当一个成员不在表a中但在表b中时,该函数返回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,它说我的语法有问题,但我不能找出什么错了?提前谢谢!

von4xj4u

von4xj4u1#

你可以利用 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 ;

相关问题