簡體   English   中英

如何在select語句后在mysql存儲過程中插入值

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

我是存儲過程的新手,如果有人可以幫助我,我將不勝感激!

我正在嘗試在表中搜索電子郵件,如果電子郵件存在,則返回電子郵件和用戶名,如果不存在,則應將電子郵件插入數據庫,但插入部分不起作用,下面是我的代碼,但不確定我在這里做錯了什么 - 沒有錯誤或任何只是不要插入到表中:

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
\n用戶郵箱 | 用戶名\n :------------ |  :-------\n test@test.com | 用戶名\n
CALL InsertMnualUser("test@test.com")
\n用戶郵箱 | 用戶名\n :------------ |  :-------\n test@test.com | 用戶名\n\n

db<> 在這里擺弄

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM