[英]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.