假设我有2个表的postgresql数据库:用户和提交,我正在做:
SELECT * FROM User;
SELECT * FROM Submission;
如您所见,它是两个查询,因此某些更改可能会应用于查询之间的任何表
所以我有两个问题:
在single transaction中运行两个语句,该语句设置为repeatable read
。
可重复读取隔离级别仅查看事务开始之前提交的数据;它永远不会看到未提交的数据或在并发事务执行事务期间提交的更改。
是的,单个语句总是原子的。即使在语句仍在运行时提交了这些更改,它也不会在运行时看到底层数据的更改。