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 permite inserir novas linhas na tabela. Pode ser inserida uma linha de cada vez, ou várias linhas resultantes de uma consulta.

Os nomes das colunas de destino podem ser listados em qualquer ordem. As colunas que não constam da lista de inserção são inseridas utilizando o valor padrão, seja seu valor padrão declarado ou nulo.

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

É 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 é 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.
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
Esta coluna será preenchida com o seu valor padrão.
consulta
Uma consulta (comando SELECT) que fornece as linhas a serem inseridas. Consulte o comando SELECT para obter a descrição da sintaxe.

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 é o OID atribuído à linha inserida, senão oid é 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, did, data_prod, tipo)
    VALUES ('T_601', 'Yojimbo', 106, '1961-06-16', 'Drama');

O exemplo abaixo utiliza a cláusula DEFAULT para as colunas de data em vez de especificar um valor.

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

O exemplo abaixo insere algumas linhas na tabela filmes a partir da tabela temp:

INSERT INTO filmes SELECT * FROM temp;

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[3][3])
    VALUES (2,'{}');
INSERT INTO tictactoe (game, board)
    VALUES (3,'{{,,},{,,},{,,}}');

Compatibilidade

O comando INSERT está em conformidade com o padrão SQL. As possíveis limitações da cláusula consulta estão documentadas no comando SELECT .

SourceForge.net Logo