最近,我一直在阅读有关数据库切分和数据库并发控制以及ACID属性的文章,我一直在考虑一些对我来说有点棘手的场景。
假设我们想要从一个帐户转到另一个帐户的交易。假设我们有按国家划分的客户(帐户),就像特定服务器上的美国客户与欧洲客户分开(为了便于扩展)
这类系统的事务应该如下所示:
BEGIN TRANSACTION
UPDATE FROM Account SET balance = balance - 100.0 WHERE id = 1;
UPDATE FROM Account SET balance = balance + 100.0 WHERE id = 2;
COMMIT;
假设帐户#