如何检查用户是否在角色中?

时间:2019-03-28 16:52:39

标签: mysql stored-procedures roles

我正在上大学,发现在创建存储过程以删除用户时遇到了一些麻烦。我需要检查用户是否具有特定角色,以便决定删除后的其他操作。

主要思想是输入昵称作为参数,使用该电子邮件的用户将被删除。所有这些都很好,并且可以使用简单的“如果存在用户名,则删除用户”查询。我明白了。

但是我有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语句中进行验证?

0 个答案:

没有答案