In meiner Mysql, ich unten gespeicherte Prozedur geschrieben haben Daten in Benutzer-Tabelle einzufügen,MySQL gespeicherte Prozedur in Parameter Ausgabe
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 ;
Wenn ich diese Prozedur zu testen, wie unten,
CALL `CreateUser1`('[email protected]' , 'abcdefgh' ,'[email protected]', 'sa' , '' ,'123456789','hasghsdfhgfhgfhdgfhdsgsh');
SELECT * FROM `um.user` WHERE email='[email protected]';
Es tut nichts.
Es fügt keine Daten in die Tabelle ein, ich habe das Problem herausgefunden.
Die Ausgabe ist im Parameter "Email".
Aber wenn ich den Parameter "Email" zu "Email12" ändere, hat es wie erwartet funktioniert.
Aber ich will nicht in Parameter ändern, da es wird auch eine Veränderung in meinem API sein,
Jetzt möchte ich dieses Problem in sp Ebene zu lösen, wie auch, ich habe auch unter Änderungen versucht in SP, die auch nicht funktioniert hat,
Set @userEmail=Email;
IF NOT EXISTS(SELECT user_id FROM `um.user` WHERE `email`[email protected])THEN
Irgendwelche Vorschläge
Grüße Sangeetha
Sollte es nicht mit heißen: ANRUF 'CreateUser1' ('[email protected] ' 'abcdefgh', 'sa',' ',' abc @ gmail.com ',' 123456789 ',' haghhsdfhgfhgfhdgfhdsgsh '); (die AlternateEmail ist nach LastName nicht vor FirstName) – piotrgajow
Beide sind korrekt. – Sangeetha
In MySQL sollte der an eine Stored Procedure übergebene Parametername nicht mit dem Spaltennamen übereinstimmen. Ich habe dieses Problem vor langer Zeit und herausgefunden, dass dies der Grund ist. –