DROP PROCEDURE IF EXISTS `p_userinfo_delete`;
DELIMITER $$

CREATE
    /*[DEFINER = { user | CURRENT_USER }]*/
    PROCEDURE `p_userinfo_delete`(IN mobilePhone_ VARCHAR(11))
     MODIFIES SQL DATA
     COMMENT '删除用户信息'
    BEGIN
	-- 用户ID
	DECLARE userId_ VARCHAR(8);
	-- 错误标识
	DECLARE t_error INT DEFAULT 0;
	
	DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET t_error = 1;
	
        START TRANSACTION;	

	IF (t_error = 0 AND mobilePhone_ IS NOT NULL)
	THEN
	
		SELECT id INTO userId_ FROM `user` WHERE mobilePhone = mobilePhone_;
		
		-- 删除用户表
		DELETE FROM `user` WHERE id = userId_;

	END IF;
	
	IF t_error =0
	THEN
		COMMIT;
	ELSE 
		ROLLBACK;
	END IF;

    END$$

DELIMITER ;

使用事务进行处理

posted on 2017-01-18 19:26  辛植  阅读(152)  评论(0编辑  收藏  举报