database - 当另一个事务在当前事务之前提交时,PostgreSQL 会回滚吗?
问题描述
我有几个问题,请多多包涵。
1-假设我们试图借记“John”并贷记“Ann”,我们同时收到两个请求,我们首先检查余额是否大于0,然后进行计算并最终提交事务,PostgreSQL 在使用事务时是否会在另一个事务提交时回滚到事务的开头?
2- PostgreSQL 中同一行上的事务是否一一发生?想象一下,我SELECT
从表 A 中 ing,然后INSERT
在表 B 中,所有事务都等待SELECT
从 A 一个接一个吗?如果没有,是否有可能在 PostgreSQL 中实现这一点?(我听说 PostgreSQL 中有不同类型的事务,你也可以锁定一行)
3-事务在 PostgreSQL 中是如何工作的,他们最后是否会仔细检查自己以验证一切是否相同?如果是的话,当你添加code logic
添加时,比如在你的代码中计算,它最后如何仔细检查自己?
4- 从A账户转账到B账户时,需要锁一行吗?还是在检查代码中的余额时进行交易以确保余额确实是您得到的东西并防止双重支出?
解决方案
推荐阅读
- python - Ctypes:OSError:异常:堆栈溢出
- python - 在唯一元素的结构化 Numpy 数组中查找相邻值的最简单方法是什么?
- ionic-framework - 如何将 Phaser 3 集成到 Ionic 4?
- sql-server - 如何选择 SQL Server 表作为制表符分隔的字符串
- javascript - 当实际的鼠标点击没有在目标元素上开始时,如何防止触发点击事件?
- flutter - 如何在 Dart 中获取某物的类型?
- java - 文件中的允许值
- java - 使用 String.parseByte(string s) 处理 0x7F 以上的值 - Java
- ffmpeg - ffmpeg:UDP 到 RTMP 流 - PES 问题/超出范围/损坏的宏块
- python - 如何在每个单元测试中重置夹具的某些属性?