我在使用
时遇到了问题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是否也启动了一个事务。
答案 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了解更多