我有一份声明
replace into a(A,B,C,D,E) select * from b;
我不知道它是否作为交易运行。MySQL中的每个DML语句都是作为事务运行的吗?我已经尝试了下面的语句来产生一个重复的键错误,它作为一个事务运行。
insert into a select * from b;
但是,我不确定是否有一条语句在任何情况下都作为事务运行。
eqoofvh91#
是的。https://dev.mysql.com/doc/refman/8.0/en/innodb-autocommit-commit-rollback.html表示:在InnoDB中,所有的用户活动都发生在一个事务中。如果启用了autocommit模式,则每个SQL语句都单独形成一个事务。
autocommit
1条答案
按热度按时间eqoofvh91#
是的。
https://dev.mysql.com/doc/refman/8.0/en/innodb-autocommit-commit-rollback.html表示:
在InnoDB中,所有的用户活动都发生在一个事务中。如果启用了
autocommit
模式,则每个SQL语句都单独形成一个事务。