INSERT INTO tabela [ ( coluna [, ...] ) ] { DEFAULT VALUES | VALUES ( { expressão | DEFAULT } [, ...] ) | consulta }
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.
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.
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,'{{,,},{,,},{,,}}');
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 .