猿问

数据库事务

事务有原子性,就是不可分的,要么都不做,要么全做完

比如说我要把银行卡的钱全部取光:  查询余额--->取出所有钱--->更新账户余额为0

我拿到钱之后出异常了,事务回滚到最开始,啥都没做.那我取出来的钱怎么办?

还有比如说:A事务在存款,B事务在取款.余额是1000块,A,B两个事务开始操作读取的都是1000块,然后A事务存了1000块,A事务执行完毕,数据库余额为2000块,但是因为B事务读物到的余额是1000块,他取1000块之后,是不是要把数据库余额更新为0呢,但是正常不是应该还有1000才对吗......


沧海一幻觉
浏览 486回答 1
1回答

红糖糍粑

问题一:钱是要在事务提交之后才能取出来的。问题二:事务具有隔离性。A事务提交成功,B事务在A事务提交成功之前开始,在A事务提交成功之后提交的时候,之前读到的数据已经过期,B事务提交不成功。
随时随地看视频慕课网APP
我要回答