MySql:我需要提交SET SESSION TRANSACTION吗?

时间:2018-04-18 09:45:37

标签: mysql transactions

我在使用

时遇到了问题
CREATE TEMPORARY TABLE tmp AS (SELECT * FROM mytable);

因为我遇到了很多僵局。现在我用:

SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
CREATE TEMPORARY TABLE tmp AS (SELECT * FROM mytable);

到目前为止没有产生死锁,但我想知道我是否可以这样使用它,或者我是否必须这样做:

SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
CREATE TEMPORARY TABLE tmp AS (SELECT * FROM mytable);
COMMIT;

我在最后看到一些带有COMMIT的代码和没有COMMIT的代码所以我不确定SET SESSION TRANSACTION是否也启动了一个事务。

1 个答案:

答案 0 :(得分:0)

使用DDL语句意味着隐式自动装置,例如:您的

CREATE TEMPORARY TABLE tmp AS (SELECT * FROM mytable);

请参阅https://dev.mysql.com/doc/refman/5.6/en/innodb-autocommit-commit-rollback.html了解更多