Here is my MySQL Procedure
CREATE PROCEDURE sw.registerUser
(IN firstName VARCHAR(100), IN lastName VARCHAR(100), IN companyID INT)
BEGIN
DECLARE UserID INT ;
DECLARE HAS_ERROR BOOL;
DECLARE code CHAR(5) DEFAULT '00000';
DECLARE msg TEXT;
DECLARE rows INT;
DECLARE result TEXT;
DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
GET DIAGNOSTICS CONDITION 1
code = RETURNED_SQLSTATE, msg = MESSAGE_TEXT;
SELECT CONCAT('insert users failed, error = ',code,', message = ',msg);
ROLLBACK;
END;
insert into USERS(firstName,lastName) values (firstName,lastName);
SET UserID = LAST_INSERT_ID();
-- Add to company table
BEGIN
DECLARE EXIT HANDLER FOR SQLEXCEPTION SET HAS_ERROR=1;
SELECT 'Error occurred on update';
update company set USERREG=1 where ID=companyID;
END;
commit;
END
Сначала я добавляю пользователя, и, если пользователь успешно добавлен, обновите таблицу компании.Мой оператор обновления успешно выполняется, и я даже вижу обновленное значение в таблице.Однако процедура возвращает сообщение «Произошла ошибка при обновлении».Может кто-нибудь указать, что я делаю не так?
Спасибо!