MySQL код ошибки при попытке создать функцию, которая проверяет данные? - PullRequest
0 голосов
/ 20 ноября 2018

Итак, у меня есть две таблицы в моей базе данных, которые содержат идентификатор участника.Я пытаюсь создать хранимую функцию, которая возвращает 0, когда член НЕ находится в таблице A, но находится в таблице B.

Вот мой код:

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, и он говорит, что есть проблема с моим синтаксисом, но я не могу понять, что не так?Заранее спасибо!

1 Ответ

0 голосов
/ 20 ноября 2018

Вместо этого вы можете использовать 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 ;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...