CREATE TABLE AS

Nome

CREATE TABLE AS -- cria uma tabela a partir dos resultados de um comando

Sinopse

CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } ] TABLE nome_da_tabela [ (nome_da_coluna [, ...] ) ] [ [ WITH | WITHOUT ] OIDS ]
    AS comando

Descrição

O comando CREATE TABLE AS cria uma tabela e a preenche com dados computados pelo comando SELECT, ou por um comando EXECUTE que executa um comando SELECT preparado. As colunas da tabela possuem os nomes e tipos de dado associados às colunas de saída do comando SELECT (mas é possível mudar os nomes das colunas fornecendo uma lista explícita contendo os novos nomes das colunas). [1]

O comando CREATE TABLE AS possui alguma semelhança com o comando de criação de uma visão, mas na realidade é bastante diferente: este comando cria a nova tabela e executa a consulta apenas uma vez para preencher inicialmente a nova tabela. A nova tabela não acompanha as mudanças posteriores ocorridas nas tabelas de origem do comando. Diferentemente, a visão executa novamente o comando SELECT que a define sempre que é consultada.

Parâmetros

GLOBAL ou LOCAL

Ignorado por compatibilidade. Para obter detalhes deve ser consultado o comando CREATE TABLE.

TEMPORARY ou TEMP

Se for especificado a tabela será criada como sendo uma tabela temporária. Para obter detalhes deve ser consultado o comando CREATE TABLE.

nome_da_tabela

O nome (opcionalmente qualificado pelo esquema) da tabela a ser criada.

nome_da_coluna

O nome da coluna na nova tabela. Se os nomes das colunas não forem fornecidos, estes serão obtidos a partir dos nomes das colunas de saída do comando. Se a tabela for criada a partir de um comando EXECUTE, não poderá ser especificada a lista contendo os nomes das colunas.

WITH OIDS
WITHOUT OIDS

Esta cláusula opcional especifica se a tabela criada pelo comando CREATE TABLE AS deve incluir os OIDs. Se não for especificada nenhuma das formas desta cláusula, é utilizado o valor do parâmetro de configuração default_with_oids.

comando

Um comando de consulta (ou seja, um comando SELECT ou um comando EXECUTE que executa um comando SELECT preparado). Consulte SELECT ou EXECUTE, respectivamente, para obter a descrição da sintaxe permitida.

Observações

Este comando é funcionalmente equivalente ao comando SELECT INTO, mas é preferido por ser menos propenso a ser confundido com outros usos da sintaxe do SELECT INTO. Além disso, o comando CREATE TABLE AS oferece um superconjunto das funcionalidades oferecidas pelo comando SELECT INTO.

Antes do PostgreSQL 8.0, o comando CREATE TABLE AS sempre incluía os OIDs nas tabelas criadas. A partir do PostgresSQL 8.0, o comando CREATE TABLE AS permite ao usuário especificar explicitamente se os OIDs devem ser incluídos. Se a presença dos OIDs não for especificada explicitamente, é utilizada a variável de configuração default_with_oids. Embora o valor padrão corrente seja TRUE, este valor padrão pode ser mudado no futuro. Portanto, os aplicativos que requerem que os OIDs sejam criados na tabela pelo comando CREATE TABLE AS devem especificar WITH OIDS para garantir a compatibilidade com as versões futuras do PostgreSQL.

Exemplos

Criar a tabela filmes_recentes consistindo apenas das entradas recentes da tabela filmes:

CREATE TABLE filmes_recentes AS
  SELECT * FROM filmes WHERE data_prod >= '2002-01-01';

Compatibilidade

O comando CREATE TABLE AS está especificado no padrão SQL:2003. Existem algumas pequenas diferenças entre a definição do comando no SQL:2003 e sua implementação no PostgreSQL:

Consulte também

CREATE TABLE, EXECUTE, SELECT, SELECT INTO

Notas

[1]

DB2 — No comando CREATE TABLE, a cláusula LIKE nome da tabela, nome da visão ou apelido especifica que as colunas da tabela possuem exatamente o mesmo nome e descrição das colunas da tabela, visão ou apelido identificado. O nome especificado após o LIKE deve identificar uma tabela, visão ou apelido existente no catálogo, ou uma tabela temporária declarada. DB2 Version 9 for Linux, UNIX, and Windows (N. do T.)

SourceForge.net Logo CSS válido!