DELIMITER $$
DROP PROCEDURE IF EXISTS `user_db`.`insertUser` $$
CREATE PROCEDURE `user_db`.`insertUser`(
IN _userEmail VARCHAR(50),
IN _userPassword VARCHAR(50),
IN _userPhone VARCHAR(10),
IN _userUsername VARCHAR(50),
IN _userAccountType ENUM('0', '1'),
IN _userAdmin ENUM('0', '1'),
IN _userSuperAdmin ENUM('0', '1'),
IN _userPresenceState ENUM('0', '1'),
OUT _userInsertResult INT(36)
)
NOT DETERMINISTIC MODIFIES SQL DATA SQL SECURITY DEFINER
BEGIN
DECLARE _userCount INT;
SELECT COUNT(id) AS _userCount FROM `user_db`.`user_primary` WHERE email = _userEmail LIMIT 1;
IF _userCount = 0 THEN
INSERT INTO `user_db`.`user_primary` (id, email, encrypted_password, phone, username, user_account_type, user_admin, user_super_admin, presence_state) VALUES (UUID(), _userEmail, _userPassword, _userPhone, _userUsername, _userAccountType, _userAdmin, _userSuperAdmin, _userPresenceState);
SET _userInsertResult := LAST_INSERT_ID();
END IF;
END
$$
DELIMITER ;
I wrote this stored procedure in MYSQL to check if the user exist and if the count is 0 then insert and return the id
else I'll do something else. But even if the _userCount
is 0
, the INSERT
statement is not working. This is my first stored procedure and I'm learning. I'm trying but not able to understand the reason for failure.