mysql 更新语句update放入存储过程无法执行
有一张表list_alldep,其departid为主键,单独执行更新语句可以成功,如下:
update list_alldep set dep='MyDep1' where departid=101;
但将这条语句放进存储过程,却一直不能正确执行,如下:
CREATE PROCEDURE mysp_update_depart(in p_departid INT,in p_dep varchar(50),out result INT)
BEGIN
DECLARE t_error INTEGER DEFAULT -99;
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET t_error=-1;
START TRANSACTION;
SET @sqlState = "update list_alldep set dep=? where departid=?;";
SET @p_departid = p_departid;
SET @p_dep = p_dep;
PREPARE stmt from @sqlState;
EXECUTE stmt USING @p_dep,@p_departd;
DEALLOCATE PREPARE stmt;
IF t_error <> 0 THEN
ROLLBACK;
ELSE
COMMIT;
END IF;
SET result=t_error;
END
执行call mysp_update_depart(101,'MyDep2',@rv); 始终返回-99。
郁闷了好久,仍未解决。
望大神指点!