我有一个代码有两个mysql查询。
DELETE FROM my_table WHERE user_id=some_number
INSERT INTO my_table (user_id, ...) VALUES(some_number, ...)
由于“重复项”删除失败后mysql插入
领域user_id是唯一的。
在极少数情况下插入失败,声称发生了重复条目。我的第一本能让我相信DELETE没有完成,现在插入试图插入,我得到一个重复的条目。这可能吗?我怎样才能避免这种情况?可以想象一个不同的解释吗?
更新:我删除的原因是因为我想删除所有不是我第一次更新/插入的数据。另外,我认为重要的是说大部分数据保持不变。
是否有可能是两个进程同时为同一个ID运行这两个语句的竞态条件? –
你可能有兴趣在REPLACE和INSERT ... ON DUPLICATE KEY UPDATE语句 –
DELETE失败可能吗?执行后是否有一些检查? – ascanio