业务场景
本次业务场景是对一张表在同一个事务中首先进行了update操作,随后进行了select操作导致的死锁问题
解决方法
update语句操作中增加WITH (TABLOCKX),示例:
update v_treatment_record WITH (TABLOCKX) set is_del=1 where treatment_process_id =:treatmentProcessIds and init_date=:init_date and is_del=0
加上这个排他锁之后,这个死锁的问题变解决了。 参考