Não há necessidade de se preocupar com o conflito.
O esquema pg_temp é específico da sessão. Se você tiver uma instrução concorrente em uma sessão separada, ela usará um esquema diferente (mesmo que você a veja como tendo o mesmo nome).
Duas notas, porém:
-
Sempre que você cria objetos temporários, o catálogo do sistema cria um esquema temporário e os próprios objetos. Isso pode causar confusão se usado com frequência.
Assim, para pequenos conjuntos/usos frequentes, geralmente é melhor manter umin
ou umwith
declaração (ambos os quais o Postgres lida muito bem). Também é ocasionalmente útil "enganar" o planejador para usar qualquer plano que você esteja procurando usando uma função de retorno de conjunto imutável.
-
No caso de você decidir usar tabelas temporárias, geralmente é melhor indexá-las e analisá-las depois de preenchê-las. Caso contrário, você está fazendo pouco mais do que escrever umwith
declaração.