SQL Select查询是否会选择在Select查询执行期间插入的记录?

时间:2020-04-19 09:39:41

标签: sql postgresql

假设我们有一个表bookings,其中包含数十亿条记录。我们编写了一个简单的SELECT查询,以使用一些WHERE子句从该表中选择一些记录(与WHERE子句中的内容无关。此查询将花费几秒钟)。执行完此SELECT查询之后(并且在查询完成之前),我们在bookings表中插入了一条记录(该记录满足第一个WHERE查询的SELECT子句)。

问题:“ 当第一个SELECT查询完成其工作时,是否会选择此新记录?

最好是我想回答有关PostgreSQL的情况,但是很高兴听到MySQL,SQL Server和其他人在这种情况下的表现。

谢谢。

1 个答案:

答案 0 :(得分:0)

当第一个SELECT查询完成其工作时,将选择此新记录

否。

每个语句都是原子操作,并且与语句启动时一样,可以看到数据库的一致状态(快照)。

以上内容适用于Postgres和Oracle(也许也适用于其他DBMS,但我不能肯定地说。有些支持脏读,但不能保证)。