当其他用户在同一个表上插入记录时,选择查询输出

时间:2017-10-22 06:33:53

标签: sql

如果同时其他人在同一个表中插入数据,那么select查询的输出是什么?

2 个答案:

答案 0 :(得分:1)

对于DBMS正确实现ACID原则,select语句的结果在执行期间不会改变。从逻辑上讲,您可以想象一下,当数据库在您的查询开始时拍摄所有数据的快照,并且只从该快照中检索数据(当然:物理上这是>通过复制之前的数据来完成运行查询)。

这个"快照"最常见的实现服用被称为Multi Version Concurrency Control。该名称表示后台发生的情况:对于每行,数据库保留多个版本,对于读取该数据的事务有效。

以上假设事务至少使用READ COMMITTED隔离级别。如果当前事务使用READ UNCOMMITTED隔离级别(允许脏读),则上述情况不会成立。

答案 1 :(得分:0)

select将仅显示提交给数据库的内容。如果用户正在编辑但尚未提交,则会显示已存在的内容。如果数据是在select实际发生之前提交的,那么您将看到新值。