No hay necesidad de preocuparse por el conflicto.
El esquema pg_temp es específico de la sesión. Si tiene una declaración concurrente en una sesión separada, usará un esquema diferente (incluso si ve que tiene el mismo nombre).
Sin embargo, dos notas:
-
Cada vez que crea objetos temporales, el catálogo del sistema crea un esquema temporal y los propios objetos. Esto puede generar desorden si se usa con frecuencia.
Por lo tanto, para conjuntos pequeños/usos frecuentes, por lo general es mejor apegarse a un
in
o unwith
declaración (ambos de los cuales Postgres se las arregla bastante bien). Ocasionalmente, también es útil "engañar" al planificador para que use cualquier plan que esté buscando mediante el uso de una función de devolución de conjunto inmutable. -
En el caso de que decida usar tablas temporales, generalmente es mejor indexarlas y analizarlas una vez que las haya llenado. De lo contrario, está haciendo poco más que escribir un
with
declaración.