mysql-innodb中的单个sql语句是否总是原子的?

提问

有这样的SQL

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

即使我没有交易记录,这也会是原子操作吗?

Can this sql ensure the num field always be non-negative?

最佳答案

如果启用了自动提交,则将自动执行.除非禁用了自动提交,否则每个语句都是一个事务.

应当注意,默认情况下自动提交是启用的,因此为什么通常需要使用START TRANSACTION来启动事务.

评论