mysql事务的回滚

2025-05-14 00:59:09

1、登录mysql,在test数据库中新建一个表,输入数据: Create 哌囿亡噱Table CREATETABLE`shoufei`(`id`int(11)N晦倘佳鳎OTNULLAUTO_INCREMENT,`shijian`timestampNOTNULLDEFAULTCURRENT_TIMESTAMP,`xiangmu`varchar(20)NOTNULL,`jiage`floatNOTNULL,`shuliang`int(11)NOTNULL,`jine`floatDEFAULTNULL,PRIMARYKEY(`id`))ENGINE=InnoDBAUTO_INCREMENT=6DEFAULTCHARSET=utf8

mysql事务的回滚

2、在test数据库中建立一个“shiwu”的过程:CREATE DEFINER=`root`@`localhost` PROCEDURE `shiwu`()BEGIN END$$

mysql事务的回滚

3、在过程中定义sql语句的异常处理,如果发生异常就回滚到以前数据,并且退出当前语句块钱砀渝测(begin end)。DECL帆歌达缒ARE EXIT HANDLER FOR SQLEXCEPTION ROLLBACK;

mysql事务的回滚

4、过程开始事务:START TRANSACTION;

mysql事务的回滚

5、在事务中把id=2的记录修改为id=1,主键唯一性会产生错误,直接退出begin-end.UPDATE shoufei SET id=1 WHERE id=2;

mysql事务的回滚

6、接下来提交事务,如果提交成功换回一个结果集'提交成功!',:COMMIT; SELECT '提交成功!';

7、执行过程:call shiwu();修改数据时有错误,sql异常执行回滚ROLLBACK。

mysql事务的回滚
mysql事务的回滚

8、把修改数据改为:UPDATE shoufei SET id=6 WHERE id=2;

mysql事务的回滚

9、再执行过程,事务成功执行,把id改为6.

mysql事务的回滚
mysql事务的回滚
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢