4D v16

INSERT

Página Inicial

 
4D v16
INSERT

INSERT  


 

 

INSERT INTO {nom_sql | cadeia_sql}
[(ref_coluna, ..., ref_coluna)]
[VALUES({[INFILE]expressão_aritmética |NULL}, ..., {[INFILE]expressão_aritmética |NULL};) |sub_pesquisa]

O comando INSERT se utiliza para adicionar dados a uma tabela existente. A tabela aonde os dados são adicionados é passada utilizando um argumento de tipo nom_sql ou cadeia_sql. Os argumentos opcionais tipo ref_coluna permitem definir as colunas nas quais inserir os valores. Se não passar ref_coluna, os valores serão inseridos na mesma ordem que na base (o primeiro valor passado será inserido na primeira coluna, o segundo valor na segunda coluna, e assim sucessivamente).

Nota: este comando não é compatível com os campos 4D de tipo Objeto.

A palavra chave VALUES se utiliza para passar ele ou os valor(es) a inserir na(s) coluna(s) especificada(s). Pode passar uma expressão_aritmética o NULL. Por outra parte, una subconsulta pode ser passada na palavra chave VALUES com o propósito de inserir uma seleção de dados que são passados como os valores.

O número de valores passados via a palavra chave VALUES deve coincidir com o número de colunas especificado pelo argumento de tipo ref_coluna passado e cada um deles também deve coincidir com o tipo de dados da coluna correspondente ou ao menos ser convertida a esse tipo de dados.

A palavra chave INFILE lhe permite utilizar o conteúdo de um arquivo externo para especificar os valores de um novo registro. Esta palavra chave só deve ser utilizada com expressões de tipo VARCHAR. Quando é passada a palavra chave INFILE, o valor expressão_aritmética é avaliada como uma via do arquivo, e se é encontrado o arquivo, o conteúdo do arquivo é inserido na coluna correspondente. Só os campos de tipo texto ou BLOB podem receber valores de um INFILE. O conteúdo do arquivo é transferido como dados brutos, sem interpretação.
O arquivo procurado deve estar no computador que hospeda o motor SQL, inclusive se a consulta vem de um cliente remoto. Da mesma forma, a via deve ser expressada respeitando a sintaxe do sistema operativo do motor de SQL. Pode ser absoluta ou relativa.

O comando INSERT é suportado em pesquisas única e multi linhas. No entanto, uma instrução INSERT multi linhas não permite realizar operações UNION e JOIN.

O motor de 4D permite a inserção de valores multi linhas, que podem simplificar e otimizar o código, particularmente, ao introduzir grandes quantidades de dados. A sintaxe das inserções multi linhas é do tipo:
INSERT INTO {sql_name | sql_string}

[(column_ref, ..., column_ref)]
VALUES(arithmetic_expression, ..., arithmetic_expression), ..., (arithmetic_expression, ..., arithmetic_expression);


Esta sintaxe é ilustrada nos exemplos 3 e 4.

Este exemplo simples permite inserir uma seleção da table2 na table1:

INSERT INTO table1 (SELECT * FROM table2)

Este exemplo cria uma tabela e depois insere os valores nela:

CREATE TABLE ACTOR_FANS
(ID INT32, Nom VARCHAR);
INSERT INTO ACTOR_FANS
(ID, Nom)
VALUES (1, 'Francis’);

A sintaxe multi linhas permite evitar a repetição tediosa de linhas:

INSERT INTO MiTabla
(Campo1,Campo2,CampoBol,CampoHora,CampoInfo)
VALUES
(1,1,1,'11/01/01','11:01:01',’Primeira linha’),
(2,2,0,'12/01/02','12:02:02',’Segunda linha’),
(3,3,1,'13/01/03','13:03:03',’Terceira linha’),
………
(7,7,1,'17/01/07','17:07:07',’Sétima linha’);

Também pode utilizar as variáveis ou arrays 4D com a sintaxes multi linhas:

INSERT INTO MinhaTabela
(Campo1,Campo2,CampoBool,CampoData,CampoHora, CampoInfo)
VALUES
( :vArrId, :vArrIdx, :vArrbool, :vArrdate, :vArrL, :vArrText);

Nota: Não é possível combinar as variáveis simples e os arrays na mesma instrução INSERT.



Ver também 

DELETE
expressão_aritmética
ref_coluna
sub_consulta

 
PROPRIEDADES 

Produto: 4D
Tema: Comandos SQL

 
HISTÓRIA 

 
ARTICLE USAGE

Manual de SQL ( 4D v16)