事务学习(一)

张开发
2026/4/20 8:46:33 15 分钟阅读

分享文章

事务学习(一)
一、事务概述1.1 什么是事务事务是数据库提供的一个特性它将多个操作组成一个不可分割的单元要么全部成功要么全部失败。1.2 经典案例转账以“冠希给美美转账1000元”为例从美美账户扣款1000元向冠希账户加款1000元这两步必须同时成功或同时失败不能出现扣款成功但加款失败的情况。在MySQL数据库中使用事务提供两种方式* 模拟转账的例子冠希给美美转钱二、操作事务的两种方式第一种方式使用命令的方式start transaction; ‐‐ 开启事务update t_account set money money ‐ 1000 where username 冠希; update t_account set money money 1000 where username 美美;commit; ‐‐ 提供事务事务已经结束了数据永久的保存到数据库中了 rollback; ‐‐ 回滚事务事务已经结束了数据回滚到最初始化的状态第二种方式设置MySQL事务不默认提交的方式MySQL数据库的事务是默认提交的。update t_account set money money ‐ 1000 where username 冠希;‐‐ 这一条语句默认使用了一个事务。set autocommit off或者0 --设置让MySql的数据库的事务不默认提交编写SQL语句执行完都没有提交sql1sql2需要手动的提交或者回滚commit;rollback;二、在 MySQL 中操作事务建表语句e table t_account( id int primary key auto_increment, username varchar(20), money double ); insert into t_account values (null,美美,10000); insert into t_account values (null,冠希,10000); insert into t_account values (null,小凤,10000); insert into t_account values (null,熊大,10000); insert into t_account values (null,熊二,10000);在cmd窗口操作找到所需操作的表从美美账户扣款1000元能够操作成功给美美账户加款1000元恢复原来数据开启事务 start transaction;回滚数据rollback不开启事务回滚回滚无效给美美账户加款1000元恢复数据开启事务从美美账户扣款1000元向冠希账户加款1000元回滚回滚成功开启事务并提交事务回滚回滚失败设置MySQL事务不默认提交更新数据回滚能够回滚成功再次更新并提交回滚回滚失败

更多文章