在不使用显式事务的情况下,是:
update tokens set tokens = tokens + 1
保证在 InnoDB 中是原子的?
最佳答案
我的理解是,在自动提交模式(即“没有显式事务”)下,单个语句就是一个事务。由于事务按照定义是原子的,因此您的单个语句也是原子的。
但是,当涉及到评估约束时,这不是在语句(即事务)级别上完成的,而是在处理语句时逐行完成的。
如果您在 tokens
列上有唯一约束(索引),则该更新很可能因此失败。对于引用同一个表的外键也是如此。
关于mysql - InnoDB 中的 'update tokens set tokens = tokens + 1' 是原子的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8406922/