如何在 select 语句后的 mysql 存储过程中插入值

How can I insert value in mysql stored procedure after select statement

我是存储过程的新手,如果有人能帮助我,我将不胜感激!

我正在尝试在 table 中搜索电子邮件,如果该电子邮件存在,那么它会输入 return 电子邮件和用户名,如果它不存在,那么它将插入该电子邮件数据库,但插入部分不起作用,下面是我的代码,但不确定我在这里做错了什么 - 没有错误或任何它只是不插入到 table:

CREATE PROCEDURE InsertMnualUser(IN mail char(40))
BEGIN
DECLARE Mvar char(40);
SELECT user_email INTO Mvar 
from AppUsers WHERE user_email=mail;
IF @Mvar IS NULL
THEN
INSERT INTO AppUsers(user_email, username) 
values(mail,"username"); <=================
ELSE
SELECT user_email, username 
from AppUsers WHERE user_email=mail;
END IF;
END//
DELIMITER ;

@Mvar 与 Mvar 不同

DELIMITER //
CREATE PROCEDURE InsertMnualUser(IN mail char(40))
BEGIN
    SELECT user_email INTO @Mvar 
    from AppUsers WHERE user_email=mail;
    IF @Mvar IS NULL THEN
        INSERT INTO AppUsers(user_email, username) 
        values(mail,"username"); 
    ELSE
        SELECT user_email, username 
        from AppUsers WHERE user_email=mail;
    END IF;
END//
DELIMITER ;
CREATE TABLE AppUsers (user_email varchar(255), username varchar(255))
CREATE PROCEDURE InsertMnualUser(IN mail char(40))
BEGIN
    SELECT user_email INTO @Mvar 
    from AppUsers WHERE user_email=mail;
    IF @Mvar IS NULL THEN
        INSERT INTO AppUsers(user_email, username) 
        values(mail,"username"); 
    ELSE
        SELECT user_email, username 
        from AppUsers WHERE user_email=mail;
    END IF;
EN
CALL InsertMnualUser("test@test.com")
SELECT * FROM AppUsers
user_email    | username
:------------ | :-------
test@test.com | username
CALL InsertMnualUser("test@test.com")
user_email    | username
:------------ | :-------
test@test.com | username

db<>fiddle here