⚠️ 原子性:一半断掉,钱一分没少

下面这段在事务里改了一半就出错,然后退回原样。打出出错前的总额、出错那一刻甲的余额和退回之后的总额(三段,用 / 隔开)。 acct 表:3 行,一开始每人 100,总额 300 id 1 / 2 / 3 name 甲 / 乙 /

开始练习 →

隔离性:他没提交,你就读不到

甲那边改了但还没提交。下面这段打出甲自己看到的余额和乙看到的余额(用 / 隔开)。 acct 表:3 行,一开始每人 100,总额 300 id 1 / 2 / 3 name 甲 / 乙 / 丙 bal 100 / 100 /

开始练习 →

自己写:让它退回原样

下面这段改了一半就出错。把 TODO 补完,让总额回到原来的数。 acct 表:3 行,一开始每人 100,总额 300 id 1 / 2 / 3 name 甲 / 乙 / 丙 bal 100 / 100 / 100 四个现成

开始练习 →

自己写:把一致性那条规矩量出来

把 TODO 补完,打出转账之前的总额和转账之后的总额(用 / 隔开)。 acct 表:3 行,一开始每人 100,总额 300 id 1 / 2 / 3 name 甲 / 乙 / 丙 bal 100 / 100 / 100

开始练习 →

提交这个动作做了什么

一个事务执行 COMMIT 之后,它的改动【0】。

开始练习 →

回滚回到哪一刻

执行 ROLLBACK 之后,数据会回到【0】。

开始练习 →

提交之后还能反悔吗

一个事务已经提交成功了。这时候想撤销它,办法是【0】。

开始练习 →

⚠️ 语句报错了,事务会自动退吗

一个事务里,某条语句因为违反约束报了错。这时候【0】。

开始练习 →

⚠️ 报错之后,改动还在那儿

下面这段在事务里先改了一笔,接着插入一行主键重复的数据(会报错)。打出报错之后甲的余额和自己回滚之后甲的余额(用 / 隔开)。 acct 表:3 行,一开始每人 100,总额 300 id 1 / 2 / 3 name 甲 / 乙

开始练习 →

自己写:把这笔转账提交掉

把 TODO 补完,让转账真正生效,打出乙的余额。 acct 表:3 行,一开始每人 100,总额 300 id 1 / 2 / 3 name 甲 / 乙 / 丙 bal 100 / 100 / 100 四个现成的工具函数(题

开始练习 →