数据库设计中, 表A,表B,表A跟表B通过中间表C来关联,并且表A、表B都表C建立了外键索引关系,并设置了级联删除(on delete cascade)
在一个事务中,先删除了表A,表A删除触发了级联删除表C,接着删除表B,表B删除也触发了级联删除表C,所以在这个事务中同时出现了两个删除表C的请求,所以会产生死锁。
解决方法,表B去掉跟表C的级联删除关系,先删表A,再删表B即可