问题:在项目中,一个事务下的先新增再查询和先查询再新增结果不同
1.先查询再新增
查询的是数据库旧的数据,不包括查询后新增未提交的数据
2.先新增再查询
查询的是数据库新的数据,包括新增未提交的数据
注:假设在一个事务中,先进行插入操作并未提交,然后进行查询操作,查询是不会查询到未提交的数据的。因为未提交的事务对其他事务或查询来说是不可见的,直到事务被提交才会让其它的事务和查询可见这些修改。
需要注意的是,当一个事务正在进行时,它看到的数据是从它自己所做的修改中读取的,而不是从数据库中读取的最新数据。当事务提交时,它所做的修改才会变成数据库的一部分,并对其他事务产生影响