一,什么是事物
是指作为单个逻辑工作单元的一系列操作
简单的说:事物就是将一堆的SQL语句绑定在一起,要么都执行,要么都执行失败 ,都成功才算成功
二,事物的4个特性
原子性:多个操作是绑定到一起的,要么全成功,要么全失败
一致性:在多个系统中保证数据是一致的
隔离性:在保证了性能的同时隔离用户的操作
持久性:事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失。
隔离级别
读未提交:效率高,安全性差
读以提交:牺牲了效率,提高了安全-Oracle数据的默认隔离级别
可重复读:MySQL默认的隔离级别,安全性高,性能一般
串行化:表级锁,读写都加锁,效率低下,安全性高,不能并发
操作
开启事物:start transaction;
结束事物(提交事务):commit
rollback回滚事务(回滚到事物操作前)
MySQL数据库默认就已经管理了事物,会为每条SQL提供事物
MySQL的事物也可以改成手动提交,那就有两个步奏:先开启,写完SQL后,再手动提交
测试
USE cgb2017;
START TRANSACTION;
INSERT INTO tb_order VALUES(5,30,4,'女',30.0);
INSERT INTO tb_order VALUES(6,40,5,'女',30.0);
SET NAMES gbk;
SELECT * FROM tb_order;
COMMIT;