注册

串行化隔离级别中,事务不能读到其他并发事务已提交的记录,且最终状态与任意一种串行结果都不一致

jyt 2025/06/18 197 4 已解决

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM8
【操作系统】:win
【CPU】:x86_64
【问题描述】*:按以下顺序分别执行两个事务```sql

CREATE TABLE T1(C1 INT);

/*tx1*/ SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
/*tx2*/ SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
/*tx2*/ start transaction;
/*tx1*/ start transaction;
/*tx1*/ insert into t1 values(1);
/*tx1*/ update t1 set c1=3 where c1=2;
/*tx1*/ commit;
/*tx2*/ select * from t1;--查询
/*tx2*/ delete from t1;--删除
/*tx2*/ insert into t1 values(2);
/*tx2*/ commit;

tx2的查询查不到tx1插入的记录{1},也没有删除,最终表中记录{1,2};
按tx1,tx2串行,最终表中记录{2};
按tx2,tx1串行,最终表中记录{3,1};
mysql中,tx2的查询查到记录{1},也删除了{1}条记录,最终表中记录{2}

回答 0
暂无回答
扫一扫
联系客服