SQL语句是原子的。也就是说,如果执行以下操作:
UPDATe Cars SET Sold = Sold + 1
Sold在此语句期间,没有人可以更改变量。即使其他人正在同时执行同一条语句,它也总是增加1。
如果您有彼此依赖的语句,则会出现此问题:
a = SELECT Sold FROM Cars;UPDATe Cars SET Sold = a + 1;
在这些查询之间,另一个用户可以更改表Cars并更新Sold。为防止这种情况,请将其包装在事务中:
BEGIN;a = SELECT Sold FROM Cars;UPDATE Cars SET Sold = a + 1;COMMIT;
InnoDB支持事务,但MyISAM不支持。



