这是MySQL的原子操作吗?
UPDATE
api_report a
JOIN
(
SELECT
id
FROM
api_report
WHERE
api_report.success_nums = 7878
) b
ON a.id = b.id
SET
a.success_nums = 4646;假设我有2个线程来执行上面的SQL,数据将由2个线程中的1个更新?还是由这两个线程并发执行?我写了一个演示,似乎只有2个线程中的1个更新了数据。
发布于 2020-10-29 17:07:02
使用正确的多表语法:
UPDATE api_report a
JOIN api_report b ON a.id = b.id
SET a.success_nums = 4646
WHERE b.success_nums = 7878注意!此查询将更新所有匹配的行,包括具有success_nums = 7878的行。fiddle。如果不需要,则向WHERE子句添加更多条件,例如AND a.success_nums != 7878。
这个SQL似乎是MySQL的一个原子操作。
https://stackoverflow.com/questions/64587591
复制相似问题