Is JSON type in PostgreSQL part of transactions?
只想知道JSON类型是否也属于交易。 对于例如 如果我已经启动了一个为列JSON类型和其他类型插入数据的事务,如果发生了错误,它是否会回滚json的东西?
除非明确记录,否则PostgreSQL中的所有内容都是事务性和崩溃安全的。
PostgreSQL的事务在元组上运行,而不是单个字段。数据类型无关紧要。实际上不可能在PostgreSQL中实现非事务性的数据类型。 (
只有少数事情对交易有特殊的行为 - 序列,咨询锁等 - 并且在这种情况下,它们已经清楚地记录在案。
请注意,这会带来一些您可能不会立即期望的限制。最重要的是,因为PostgreSQL依赖于MVCC进行并发控制,所以它必须在修改该值时复制一个值(或者,有时,当修改同一元组中的其他值时)。它不能就地改变字段。因此,如果字段中有5MB