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
PHP Programando com Orientação a Objetos
Sistemas de Banco de Dados
Desenvolvendo Websites com PHP


