Как проверить, есть ли пользователь в роли? - PullRequest
0 голосов
/ 28 марта 2019

Я делаю работу для колледжа, и у меня возникают проблемы с созданием хранимой процедуры для удаления пользователя. Мне нужно проверить, играет ли пользователь определенную роль, чтобы решить, что еще делать после удаления.

Основная идея заключается в том, что вы вводите псевдоним в качестве параметра, и пользователь с таким адресом электронной почты будет удален. Все это хорошо и работает с простым запросом «DROP USER IF EXISTS username». Я понял.

Но у меня есть 3 роли, и если пользователь создается с одной из этих ролей, он также вставляется в эту таблицу.

CREATE DEFINER=`root`@`localhost` PROCEDURE `deleteUser`(
    IN Nickname varchar(45))
BEGIN

DECLARE `Host` CHAR(14) DEFAULT '@\'localhost\'';
DECLARE `Gmail` CHAR(14) DEFAULT '@\'gmail.com\'';

SET `Username`:= CONCAT(`Nickname`,`Host`);
SET `Email`:= CONCAT(`Nickname`,`Gmail`);

IF ("`Username` is investigador")
    Delete user where Gmail = Email from table Investigadores
    DROP USER IF EXISTS `Username`;
END

Я ищу следующее поведение: - вызовите deleteUser хранимую процедуру - удалить пользователя из MySQL - если пользователь имеет роль «исследователь», удалите строку, в которой этот пользователь

Но как мне сделать эту проверку внутри оператора IF?

...