单个sql语句在innodb中总是原子的吗?

时间:2012-03-16 05:27:06

标签: mysql sql innodb

有一个像这样的SQL

  

UPDATE xxx SET num = num -1 WHERE num> 0;

即使我没有交易声明,这是一个原子操作吗?

  

这个sql能否确保num字段始终为非负数?

1 个答案:

答案 0 :(得分:4)

如果启用了自动提交,则会以原子方式执行。除非禁用自动提交,否则每个语句都是单个事务。

应该注意默认情况下启用自动提交,因此启动交易通常需要START TRANSACTION。