在MySQL中使用InnoDB引擎的表,不使用锁,下面的SQL
UPDATE table_name SET remain_count = remain_count - 1 WHERE ... AND remain_count > 0;
当remain_count
是1时,会不会并行执行两条上面语句,把remain_count
减成-1呢。
不会,单条 UPDATE
语句是对于某一行记录而言是原子的,始终不可能减成 -1。
在MySQL中使用InnoDB引擎的表,不使用锁,下面的SQL
UPDATE table_name SET remain_count = remain_count - 1 WHERE ... AND remain_count > 0;
当remain_count
是1时,会不会并行执行两条上面语句,把remain_count
减成-1呢。
不会,单条 UPDATE
语句是对于某一行记录而言是原子的,始终不可能减成 -1。