SELECT INTO

Nome

SELECT INTO -- cria uma tabela a partir dos resultados de uma consulta

Sinopse

SELECT [ ALL | DISTINCT [ ON ( expressão [, ...] ) ] ]
    * | expressão [ AS nome_de_saída ] [, ...]
    INTO [ TEMPORARY | TEMP ] [ TABLE ] nova_tabela
    [ FROM item_do_from [, ...] ]
    [ WHERE condição ]
    [ GROUP BY expressão [, ...] ]
    [ HAVING condição [, ...] ]
    [ { UNION | INTERSECT | EXCEPT } [ ALL ] seleção ]
    [ ORDER BY expressão [ ASC | DESC | USING operador ] [, ...] ]
    [ LIMIT { contador | ALL } ]
    [ OFFSET início ]
    [ FOR { UPDATE | SHARE } [ OF nome_da_tabela [, ...] ] [ NOWAIT ] [...] ]

Descrição

O comando SELECT INTO cria uma tabela e a carrega com dados computados por uma consulta. Os dados não são retornados para o cliente, como acontece normalmente no comando SELECT. As colunas da nova tabela possuem o mesmo nome e tipo de dado associados às colunas de saída do comando SELECT. [1] [2]

Parâmetros

TEMPORARY ou TEMP

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

nova_tabela

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

Todos os outros parâmetros estão descritos detalhadamente no comando SELECT.

Observações

O comando CREATE TABLE AS é funcionalmente semelhante ao comando SELECT INTO. O comando CREATE TABLE AS é a sintaxe recomendada, uma vez que esta forma do comando SELECT INTO não está disponível no ECPG nem no PL/pgSQL, porque estes interpretam a cláusula INTO de forma diferente. Além disso, o comando CREATE TABLE AS oferece um conjunto maior de funcionalidades do que as oferecidas pelo comando SELECT INTO.

Antes do PostgreSQL 8.0, a tabela criada pelo comando SELECT INTO incluía os OIDs por padrão. Desde o PostgreSQL 8.1 este é mais o caso — para incluir os OIDs na nova tabela a variável de configuração default_with_oids deve ser ativada. Como alternativa, o comando CREATE TABLE AS pode ser utilizado com a cláusula WITH OIDS.

Exemplos

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

SELECT * INTO filmes_recentes FROM filmes WHERE data_prod >= '2002-01-01';

Compatibilidade

O padrão SQL utiliza o comando SELECT ... INTO para representar a seleção de valores colocados dentro de variáveis escalares do programa hospedeiro, em vez de criar uma nova tabela. Esta é a mesma utilização encontrada no ECPG (consulte o Capítulo 31) e no PL/pgSQL (consulte o Capítulo 37). A utilização pelo PostgreSQL do comando SELECT INTO para representar a criação de uma tabela é histórica. Nos programas novos é melhor utilizar o comando CREATE TABLE AS para esta finalidade.

Consulte também

CREATE TABLE AS

Notas

[1]

Oracle — O comando SELECT INTO retorna dados de uma ou mais tabelas do banco de dados e atribui os valores selecionados a variáveis ou coleções. PL/SQL User's Guide and Reference 10g Release 1 (10.1) Part Number B10807-01 (N. do T.)

[2]

DB2 — O comando SELECT INTO produz uma tabela de resultado consistindo de no máximo uma linha, e atribui os valores desta linha às variáveis hospedeira. DB2 Version 9 for Linux, UNIX, and Windows (N. do T.)

SourceForge.net Logo CSS válido!