INSERT

Nome

INSERT -- cria novas linhas na tabela

Sinopse

INSERT INTO tabela [ ( coluna [, ...] ) ]
    { DEFAULT VALUES | VALUES ( { expressão | DEFAULT } [, ...] ) | consulta }

Descrição

O comando INSERT insere novas linhas na tabela. Podem ser inseridas uma ou mais linhas especificadas por expressões de valor, ou zero ou mais linhas resultantes de uma consulta.

Os nomes das colunas de destino podem ser listados em qualquer ordem. Se não for fornecida nenhuma lista de nomes de colunas, o padrão é usar todas as colunas da tabela na ordem em que foram declaradas; ou os primeiros N nomes de colunas, se existirem apenas N colunas fornecidas na cláusula VALUES ou na consulta. Os valores fornecidos pela cláusula VALUES ou pela consulta são associados à lista de colunas explícita ou implícita da esquerda para a direita.

As colunas que não estão presentes na lista de colunas explícita ou implícita são preenchidas com o valor padrão, seja o valor padrão declarado ou nulo se não houver nenhum.

Se a expressão para alguma coluna não for do tipo de dado correto, será tentada uma conversão de tipo automática.

É necessário possuir o privilégio INSERT na tabela para poder inserir linhas. Se for utilizada a cláusula consulta para inserir linhas a partir de uma consulta, também será necessário possuir o privilégio SELECT em todas as tabelas usadas pela consulta.

Parâmetros

tabela

O nome (opcionalmente qualificado pelo esquema) de uma tabela existente.

coluna

O nome de uma coluna da tabela. O nome da coluna pode ser qualificado por um nome de subcampo ou por um índice de matriz, se for necessário (a inserção em apenas alguns campos de uma coluna composta deixa os outros campos nulos).

DEFAULT VALUES

Todas as colunas são preenchidas com seu valor padrão.

expressão

Uma expressão ou valor a ser atribuído à coluna correspondente.

DEFAULT

A coluna correspondente é preenchida com o valor padrão.

consulta

Uma consulta (comando SELECT) que fornece as linhas a serem inseridas. Para obter a descrição da sintaxe deve ser consultado o comando SELECT.

Saídas

Ao terminar bem-sucedido, o comando INSERT retorna uma linha de fim de comando na forma

INSERT oid contador

O contador é o número de linhas inseridas. Se contador for igual a um, e a tabela de destino possuir OIDs, então oid será o OID atribuído à linha inserida, senão oid será zero.

Exemplos

Inserir uma única linha na tabela filmes:

INSERT INTO filmes VALUES
    ('UA502', 'Bananas', 105, '1971-07-13', 'Comédia', '82 minutes');

No exemplo abaixo a coluna duracao é omitida e, portanto, receberá o valor padrão:

INSERT INTO filmes (cod, titulo, id_dist, data_prod, tipo)
    VALUES ('T_601', 'Yojimbo', 106, '1961-06-16', 'Drama');

O exemplo abaixo utiliza a cláusula DEFAULT para a coluna data_prod em vez de especificar um valor.

INSERT INTO filmes VALUES
    ('UA502', 'Bananas', 105, DEFAULT, 'Comédia', '82 minutes');
INSERT INTO filmes (cod, titulo, id_dist, data_prod, tipo)
    VALUES ('T_601', 'Yojimbo', 106, DEFAULT, 'Drama');

Para inserir uma linha consistindo inteiramente de valores padrão:

INSERT INTO filmes DEFAULT VALUES;

O exemplo abaixo insere algumas linhas na tabela filmes a partir da tabela temp_filmes com a mesma disposição de colunas da tabela filmes:

INSERT INTO filmes SELECT * FROM temp_filmes WHERE data_prod < '2004-05-07';

O exemplo mostrado abaixo insere em colunas de matriz:

-- Criar um tabuleiro vazio de 3x3 posições para o Jogo da Velha
-- (estes comandos criam o mesmo tabuleiro)
INSERT INTO tictactoe (game, board[1:3][1:3])
    VALUES (1,'{{"","",""},{"","",""},{"","",""}}');
INSERT INTO tictactoe (game, board)
    VALUES (2,'{{,,},{,,},{,,}}');

Compatibilidade

O comando INSERT está em conformidade com o padrão SQL. O caso em que a lista de nomes de colunas é omitida, mas nem todas as colunas são preenchidas a partir da cláusula VALUES ou da consulta não é permitido pelo padrão.

As possíveis limitações da cláusula consulta estão documentadas no comando SELECT.

SourceForge.net Logo CSS válido!