数据库的脏写有几种定义?

我看到脏写有两种不同的定义:

  • 如果一个事务修改了另一个未提交事务修改过的数据,那就意味着发生了脏写
  • 脏写是指一个事务覆盖了另一个事务已经提交的数据

这两种都是公认的『脏写』的定义吗?

阅读 2.3k
1 个回答

参照脏读的定义“一个事务读取了另一个事务未提交的数据”,脏写的定义应该为“一个事务修改了另一个事务未提交的数据”,也就是你问题中的第一条。
问题中第二条应该叫覆盖更新,是由幻读引起的,补充一下幻读的定义:“一个事务的写入更改了另一个事务的查询结果”。

推荐问题