如果某行尚不存在,我需要向表中插入一行,我需要使用存储过程来执行此操作。因此,我需要选择检查该行是否已经存在,然后插入。我想避免的是竞争条件,其中存储过程的 2 个调用者可能会看到该行不存在,然后都尝试插入该行。
解决这个问题的第一个想法是锁定表,但遗憾的是您不能在存储过程中发出 LOCK TABLE
。
我想避免在客户端 (C#) 捕获重复键插入异常。
有什么方法可以锁定表格或其他解决方案?
最佳答案
关于MySQL存储过程中 "Lock Table"的替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7317449/