Escolha uma Página

Introdução

Uma tabela temporaria (temporary table) é uma tabela como as demais, exceto pelo fato de que ela somente existe enquanto a sessão na qual ela foi criada estiver ativa, ou seja, assim que a conexão com o banco é fechada a tabela temporária é dropada do banco.  Em geral este tipo de tabela é usado para armazenar o resultado imediato de uma consulta executada anteriormente.

Criando Uma Tabela Temporária

A sintaxe para criar uma tabela tempoáaria é:

CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } ] TABLE nome_da_tabela
    [ (nome_da_coluna [, ...] ) ]
    [ WITH ( parâmetro_de_armazenamento [= valor] [, ... ] ) | WITH OIDS | WITHOUT OIDS ]
    [ ON COMMIT { PRESERVE ROWS | DELETE ROWS | DROP } ]
    [ TABLESPACE espaço_de_tabelas ]
    AS comando

Exemplo

+------------+
|   SALARIO  |
+------------+
| slr_valor  |
| pss_cod    |
+------------+
+------------+
|   PESSOA   |
+------------+
| pss_cod    |
| pss_nome   |
+------------+

Listando o salário de todas as pessoas e depois calculando o valor total:

-- Lista as pessoas
SELECT pss_cod, pss_nome, slr_valor FROM pessoa p INNER JOIN salario s ON p.pss_cod = s.pss_cod
 
-- Cria a tabela temporária
CREATE TEMPORARY TABLE pessoa_salario AS
    SELECT pss_cod, pss_nome, slr_valor FROM pessoa p INNER JOIN salario s ON p.pss_cod = s.pss_cod
 
-- Calcula a soma de todos os salários
SELECT SUM(slr_valor) FROM pessoa_salario

Conclusão

Em um primeiro momento pode-se imaginar que as tabelas temporárias não sejam muito úteis porém em diversas ocasiões a melhor forma para resolver problemas complexos e através de tabelas temporárias, principalmente quando as SQL envolvidas são complexas e aninhadas.

Referências

http://www.postgresqlguide.com/creating-tables-in-postgresql.aspx

http://pgdocptbr.sourceforge.net/pg82/sql-createtableas.html