MySQL 存储过程

Posted 止动

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL 存储过程相关的知识,希望对你有一定的参考价值。

创建数据表

DROP TABLE IF EXISTS `ims_z_my_info`;
CREATE TABLE `ims_z_my_info` (
`id` int(11) DEFAULT NULL,
`name` varchar(20) DEFAULT NULL,
`balance` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of ims_z_my_info
-- ----------------------------
INSERT INTO `ims_z_my_info` VALUES (‘1‘, ‘11‘, ‘111‘);
INSERT INTO `ims_z_my_info` VALUES (‘2‘, ‘22‘, ‘222‘);
INSERT INTO `ims_z_my_info` VALUES (‘3‘, ‘33‘, ‘333‘);

 

 

创建存储过程

DROP PROCEDURE IF EXISTS proc2;
delimiter //
CREATE PROCEDURE proc2(IN cid CHAR(18), OUT num INT)
BEGIN
#事务处理标志
DECLARE t_error INTEGER DEFAULT 0;
#申明事务处理错误标志
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION, sqlwarning, not found SET t_error=1;

#开始事务
START TRANSACTION;

DELETE FROM ims_z_my_info WHERE iddd = cid;
SELECT count(id) INTO num FROM ims_z_my_info;

IF t_error = 1 THEN
#订单回滚
ROLLBACK;
# 捕捉到sql语句错误,插入一条新纪录。
INSERT INTO ims_z_my_info VALUES(‘22‘, ‘xxxx‘, ‘22334545‘);
ELSE
#提交
COMMIT;
END IF;
END //
delimiter ;

 

执行语句

SELECT * FROM ims_z_my_info;
call proc2(1, @num)
SELECT @num

以上是关于MySQL 存储过程的主要内容,如果未能解决你的问题,请参考以下文章

mysql中的存储过程怎么使用

mysql 创建存储过程问题

MYSQL存储过程注释详解

MYSQL存储过程注释详解

mysql 存储过程总结(一)

mysql中如何创建存储过程