【发布时间】:2015-01-16 03:22:40
【问题描述】:
我是 mysql 事务可序列化的新手。当我在其他并发会话正在读取表时尝试更新表的一行时,更新事务必须等到读取事务完成。有什么方法可以让写事务继续进行(然后读事务应该提交失败)?
这是我验证上述属性的测试:
第 1 节:
set transaction isolation level serializable;
create database locktest;
use locktest;
create table locktest(id int not null primary key auto_increment, text varchar(100));
insert into locktest(text) values('text1');
start transaction;
select * from locktest where id=1;
第 2 节:
use locktest;
update locktest set text='new_text2' where id=1; -- it gets stuck at this point and only proceed forward when I 'commit;' in session 1
我想要的是会话 2 的更新必须立即成功,会话 1 的事务应该中止。有什么建议吗?谢谢。
【问题讨论】:
标签: mysql transactions serializable isolation-level isolation