什么是死锁
加锁(Locking)是数据库在并发访问时保证数据一致性和完整性的主要机制。任何事务都需要获得相应对象上的锁才能访问数据,读取数据的事务通常只需要获得读锁(共享锁),修改数据的事务需要获得写锁(排他锁)。当两个事务互相之间需要等待对方释放获得的资源时,如果系统不进行干预则会一直等待下去,也就是进入了死锁(deadlock)状态。
死锁产生的场景
1.数据库表准备
navicat中,创建数据表test-lock

表字段

插入一条测试数据

2.死锁场景演示
打开一个查询窗口输入
BEGIN;
UPDATE tb_lock SET NAME