标签: mysql sql innodb
有一个像这样的SQL
UPDATE xxx SET num = num -1 WHERE num> 0;
即使我没有交易声明,这是一个原子操作吗?
这个sql能否确保num字段始终为非负数?
答案 0 :(得分:4)
如果启用了自动提交,则会以原子方式执行。除非禁用自动提交,否则每个语句都是单个事务。
应该注意默认情况下启用自动提交,因此启动交易通常需要START TRANSACTION。