В моей Mysql, я написал ниже хранимую процедуру для вставки данных в таблицу пользователей,MySQL сохраненная процедура выдачи параметров
DELIMITER $$
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`('[email protected]' , 'abcdefgh' ,'[email protected]', 'sa' , '' ,'123456789','hasghsdfhgfhgfhdgfhdsgsh');
SELECT * FROM `um.user` WHERE email='[email protected]';
Он ничего не делает.
Он не вставляет данные в таблицу, я выяснил проблему.
Исследуется в параметре «Электронная почта».
Но когда я изменяю параметр «Электронная почта» на «Email12», он работал, как ожидалось.
Но я не хочу, чтобы изменить в параметре, как это будет изменение в моей API, а также,
Теперь я хочу, чтобы решить эту проблему в уровне зр, а я пытался ниже изменений, а также в СП, который также не работает,
Set @userEmail=Email;
IF NOT EXISTS(SELECT user_id FROM `um.user` WHERE `email`[email protected])THEN
Любые предложения
с уважением Sangeetha
Не должна ли она быть вызвана с: ВЫЗОВ 'CreateUser1' ('[email protected] ' 'ABCDEFGH', 'са',' ',' abc @ gmail.com ',' 123456789 ',' hasghsdfhgfhgfhdgfhdsgsh '); (AlternateEmail после LastName не до FirstName) – piotrgajow
Оба правильные. – Sangeetha
В MySQL имя параметра, переданное в хранимую процедуру, не должно совпадать с именем столбца. Я давно получил эту проблему и выяснил, что это причина. –