什么是脏写

221 阅读1分钟

**为了防止脏写,数据库一般用行锁。**当事务想要修改特定的行时,必须先获得该行的锁。一次只有一个事务可持有任何给定行的锁。如果另一个事务要写入同一行,就必须等到第一个事务提交或回滚后。

如果两个事务尝试更新数据库中的相同数据,会发生什么情况?通常后面的写入会覆盖前面的写入。但是,如果先前的写入尚未提交,后面的写入又覆盖了这个尚未提交的值,会怎么样呢?这就叫做脏写