擅长:python、mysql、java
<p>我最终在“BlahID”字段中添加了一个“unique constraint”,因为它似乎在对我的第一个UPDATE语句执行整个表级锁。一旦我添加了这个约束,我相信它只正确地执行了一个行级锁,它为我解决了死锁问题。在</p>
<p>我还取消了更新时的“IF/ELSE”格式,只需执行以下操作:</p>
<pre><code>UPDATE MyTable SET
Foo = ?
WHERE BlahID = ?
IF @@ROWCOUNT=0
INSERT INTO MyTable (Foo)
VALUES (1)
</code></pre>
<p>我学到了很多关于“表提示”和锁定其他提供的答案,所以如果你是一个任性的谷歌搜索者,它们值得一读!在</p>