是不是事务repeatable read级别可以避免幻读
CREATE TABLE `t1` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user` varchar(45) COLLATE latin1_general_ci DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `user` (`user`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
session 1:select @@tx_isolation; REPEATABLE-READ
session 2:select @@tx_isolation; REPEATABLE-READ
session 1: begin;
session 2: begin;
session 1:select * from t1; 结果为空
session 2:select * from t1; 结果为空
session 1:insert into t1(user) values('t1');
session 2:select * from t1; 结果为空
session 1:commit;
session 2:sellect * from t1; 结果为空
session 2:commit;
session 2:sellect * from t1; 能select 出user=t1来
2个问题:
1、是不是说明在repeatable read下,能解决幻读问题
2、为什么session 1 commit了一条insert(user=t1), session 2也还是select不出来user=t1。