我最近开始学习围棋。
我发现了以下用于数据库事务处理的包装器的 Github 实现,并决定尝试一下。
(来源)https://github.com/oreilly-japan/practical-go-programming/blob/master/ch09/transaction/wrapper/main.go
我使用 PostgreSQL 作为数据库。
最初,它包含以下数据。
testdb=> select * from products;
product_id | price
------------+-------
0001 | 200
0002 | 100
0003 | 150
0004 | 300
(4 rows)
进程A成功后,故意让进程B失败,期望事务A回滚。然而,当我们运行它时,回滚并没有发生,我们最终得到以下结果
实际上,由于 B 失败,进程 A 应该回滚,数据库值应该没有变化。
我已经在一些地方插入了日志来确认这一点,但我不确定。为什么回滚没有执行?
红糖糍粑
相关分类