自己写:出错就退,没错就交

把 TODO 补完:钱够就提交,不够就退回去。这次转的数目超过了余额。打出最后的总额和甲的余额(用 / 隔开)。 acct 表:3 行,一开始每人 100,总额 300 id 1 / 2 / 3 name 甲 / 乙 / 丙 bal

开始练习 →

⚠️ 自己写:只退一半(保存点)

把 TODO 补完:先扣 10,做个保存点,再扣 90,然后只退掉后面那 90,最后提交。打出甲的余额。 acct 表:3 行,一开始每人 100,总额 300 id 1 / 2 / 3 name 甲 / 乙 / 丙 bal 1

开始练习 →

什么叫"脏读"

所谓"脏读",指的是【0】。

开始练习 →

脏读最要命的地方在哪

脏读之所以危险,是因为【0】。

开始练习 →

三类异常里哪个最轻

脏读、不可重复读、幻读三类异常,按"读到的东西作不作数"排,最轻的是【0】。

开始练习 →

⚠️ 脏读:读到的那个 70 从来没存在过

乙这一边被放松成"可以读到别人还没提交的改动"。下面这段打出甲改完还没提交时乙看到的余额和甲回滚之后乙看到的余额(用 / 隔开)。 acct 表:3 行,一开始每人 100,总额 300 id 1 / 2 / 3

开始练习 →

不可重复读:同一个事务里读两次,不一样

甲开着一个事务读了两次,中间乙改了并提交了。下面这段打出甲两次读到的余额(用 / 隔开)。 acct 表:3 行,一开始每人 100,总额 300 id 1 / 2 / 3 name 甲 / 乙 / 丙 bal 100 / 10

开始练习 →

自己写:把脏读演一遍

把 TODO 补完:让乙读到甲还没提交的改动,打出乙读到的余额。 acct 表:3 行,一开始每人 100,总额 300 id 1 / 2 / 3 name 甲 / 乙 / 丙 bal 100 / 100 / 100 四个现成

开始练习 →

自己写:把幻读演一遍

把 TODO 补完:甲开着事务数了两次"余额不少于 100 的账户有几个",中间乙插了一个新账户并提交。打出两次数出来的个数(用 / 隔开)。 acct 表:3 行,一开始每人 100,总额 300 id 1 /

开始练习 →

自己写:三类异常,一次分清

把 TODO 补完,打出脏读读到的值、脏读那个值后来变成了几、幻读前后的个数(四段,用 / 隔开)。 acct 表:3 行,一开始每人 100,总额 300 id 1 / 2 / 3 name 甲 / 乙 / 丙 bal 100

开始练习 →