2、演示环境
数据库及工具
➢MySQL版本
5.5.47
➢数据库工具
Navicat for MySQL
数据库命令
➢查看数据库版本:
select version();
➢查看数据库现在的隔离级别:
select @@session.tx_ isolation;
➢修改隔离级别:
set @@session.tx_ _isolation=级别参数;
➢级别参数:
READ-UNCOMMITTED,READ-COMMITTED,REPEATABLE-READ (MySQLinnoDB的默认隔离级别) ,SERIALIZABLE;
➢开启事务:
start transaction;
➢提交/回滚:
commit;
rollback;
数据库表
DROP TABLE IF EXISTS `account`;
CREATE TABLE `account` (
`id` int NOT NULL AUTO_INCREMENT,
`name` char(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL,
`balance` double(32,0) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
INSERT INTO `account` VALUES (1, '张三', 1000);
INSERT INTO `account` VALUES (2, '李四', 1000);
INSERT INTO `account` VALUES (3, '王五', 1000);
3、读未提交
修改隔离级别:
set @@session.tx_ _isolation=READ-UNCOMMITTED;
READ-COMMITTED,REPEATABLE-READ (MySQLinnoDB的默认隔离级别) ,SERIALIZABLE;
4、读已提交
修改隔离级别:
set @@session.tx_ _isolation=READ-COMMITTED;
5、可重复读
修改隔离级别:
set @@session.tx_ _isolation=REPEATABLE-READ;
(MySQLinnoDB的默认隔离级别)
6、可串行化
修改隔离级别:
set @@session.tx_ _isolation=SERIALIZABLE;
没有模拟 效率太低 不建议使用