微网站开发需要几个人,成都网站快速开发,中国设计网 字体,新闻资讯到底是哪个公司的一、事务简介 事务是一组操作的集合#xff0c;它是一个不可分割的工作单位#xff0c;事务会把所有的操作作为一个整体一期向系统提交或撤销操作请求#xff0c;即这些操作要么同时成功#xff0c;要么同时失败。 注意#xff1a; 默认 MySQL 的事务是 自动提交 的#…一、事务简介 事务是一组操作的集合它是一个不可分割的工作单位事务会把所有的操作作为一个整体一期向系统提交或撤销操作请求即这些操作要么同时成功要么同时失败。 注意 默认 MySQL 的事务是 自动提交 的也就是说当执行完一条 DML 语句时MySQL 会立即隐式的提交事务。 二、事务操作
1. 数据准备
drop table if exists account;create table account
(id int primary key AUTO_INCREMENT comment ID,name varchar(10) comment 姓名,money double(10, 2) comment 余额
) comment 账户表;insert into account(name, money)
VALUES (张三, 2000),(李四, 2000);2. 控制事务一 1查看/设置事务提交方式 SELECT autocommit ;
SET autocommit 0 ;2提交事务 COMMIT ;3 回滚事务 ROLLBACK ;注意上述的这种方式我们是修改了事务的自动提交行为, 把默认的自动提交修改为了手动提交, 此时我们执行的 DML 语句都不会提交, 需要手动的执行 commit 进行提交。 3. 控制事务二 1开启事务 START TRANSACTION 或 BEGIN ;2提交事务 COMMIT ;3 回滚事务 ROLLBACK ;4. 转账案例
-- 开启事务
start transaction-- 1. 查询张三余额
select * from account where name 张三;-- 2. 张三的余额减少1000
update account set money money - 1000 where name 张三;-- 3. 李四的余额增加1000
update account set money money 1000 where name 李四;-- 如果正常执行完毕, 则提交事务
commit;-- 如果执行过程中报错, 则回滚事务
-- rollback;三、事务四大特性 1原子性Atomicity事务是不可分割的最小操作单元要么全部成功要么全部失败。 2一致性Consistency事务完成时必须使所有的数据都保持一致状态。 3隔离性Isolation数据库系统提供的隔离机制保证事务在不受外部并发操作影响的独立环境下运行。 4持久性Durability事务一旦提交或回滚它对数据库中的数据的改变就是永久的。 上述就是事务的四大特性简称 ACID。 四、并发事务问题 1赃读一个事务读到另外一个事务还没有提交的数据。 2不可重复读一个事务先后读取同一条记录但两次读取的数据不同称之为不可重复读。 3 幻读一个事务按照条件查询数据时没有对应的数据行但是在插入数据时又发现这行数据已经存在好像出现了 “幻影”。 五、事务隔离级别 1查看事务隔离级别 SELECT TRANSACTION_ISOLATION;2设置事务隔离级别 SET [ SESSION | GLOBAL ] TRANSACTION ISOLATION LEVEL { READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ | SERIALIZABLE }注意事务隔离级别越高数据越安全但是性能越低。