I had problems using
CREATE TEMPORARY TABLE tmp AS (SELECT * FROM mytable);
because I got very much deadlocks. Now I use:
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
CREATE TEMPORARY TABLE tmp AS (SELECT * FROM mytable);
which produces no deadlocks so far, but I want to know if I can use it this way or if I have to commit this:
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
CREATE TEMPORARY TABLE tmp AS (SELECT * FROM mytable);
COMMIT;
I saw some code with COMMIT at the end and code without COMMIT so I'm not sure if SET SESSION TRANSACTION also starts a transaction or not.