GBase 8c
其他
文章

GBase 8c 相同表的UPDATE并发

发表于2023-12-12 17:20:3616次浏览3个评论

事务T1:

START TRANSACTION;

UPDATE test SET address='test1234' WHERE name='test1';

COMMIT;

事务T2:

START TRANSACTION;

UPDATE test SET address='test1234' WHERE name='test2';

COMMIT;

事务T3:

START TRANSACTION;

UPDATE test SET address='test1234' WHERE name='test1';

COMMIT;

场景1:

开启事务T1,不提交的同时开启事务T2,事务T1开始执行UPDATE,事务T2开始执行UPDATE,事务T1和事务T2都执行成功。更新不同行时,更新操作拿的是行级锁,不会发生冲突,两个事务都可以执行成功。

场景2:

开启事务T1,不提交的同时开启事务T3,事务T1开始执行UPDATE,事务T3开始执行UPDATE,事务T1执行成功,事务T3等待超时后会出错。更新相同行时,事务T1未提交时,未释放锁,导致事务T3执行不成功。

评论

登录后才可以发表评论
用户头像
levvel发表于 8个月前
来报个到
崔哥发表于 5个月前
梅花不肯傍春光,自向深冬著艳阳。龙笛远吹胡地月,燕钗初试汉宫妆。风虽强暴翻添思,雪欲侵凌更助香。应笑暂时桃李树,盗天和气作年芳。
GBase用户51885发表于 2个月前
加油