gpt4 book ai didi

MySQL存储过程IN参数问题

转载 作者:行者123 更新时间:2023-11-29 11:37:51 25 4
gpt4 key购买 nike

在我的 Mysql 中,我编写了以下存储过程来将数据插入用户表中,

分隔符$$

DROP PROCEDURE IF EXISTS `CreateUser1`$$
CREATE PROCEDURE `CreateUser1`(
IN Email VARCHAR(50),
IN Password1 VARCHAR(50),
IN FirstName VARCHAR(50),
IN LastName VARCHAR(50),
IN AlternateEmail VARCHAR(50),
IN PhoneNumber VARCHAR(50),
IN Token VARCHAR(500)
)

BEGIN

IF NOT EXISTS( SELECT user_id FROM `um.user` WHERE `email`=Email)THEN
INSERT INTO `um.user`(site_id,email,PASSWORD,alternate_email,first_name,last_name,contact_number,
created_on,updated_on,is_active,token,is_verified_email)
VALUES
(1, Email1 , Password1 ,AlternateEmail, FirstName , LastName ,PhoneNumber,UTC_TIMESTAMP(),UTC_TIMESTAMP(),1,Token,0);
END IF;
END$$
DELIMITER ;

当我如下测试此过程时,

CALL `CreateUser1`('ab1@ansys.com' , 'abcdefgh' ,'abc@gmail.com',  'sa' , '' ,'123456789','hasghsdfhgfhgfhdgfhdsgsh');

SELECT * FROM `um.user` WHERE email='ab1@ansys.com';

它什么也不做。

它不会将数据插入表中,我找到了问题所在。

问题出现在参数“Email”中。

但是当我将参数“Email”更改为“Email12”时,它按预期工作。

但我不想更改参数,因为这也会更改我的 API,

现在我也想在 SP 级别解决这个问题,我也在 SP 中尝试了以下更改,但也不起作用,

Set @userEmail=Email;
IF NOT EXISTS( SELECT user_id FROM `um.user` WHERE `email`=@userEmail)THEN

任何建议

问候桑吉塔

最佳答案

您还可以限定它们的标识符。请参阅9.2.1 Identifier Qualifiers .

...
/*
-- You can also use Alias
SELECT `user_id`
FROM `um.user` `uu`
WHERE `uu`.`email` = `Email`
*/
IF NOT EXISTS (SELECT `user_id`
FROM `um.user`
WHERE `um.user`.`email` = `Email`) THEN
...

关于MySQL存储过程IN参数问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36303927/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com