4D v16

INSERT

Inicio

 
4D v16
INSERT

INSERT  


 

 

INSERT INTO {nom_sql | cadena_sql}
[(ref_columna, ..., ref_columna)]
[VALUES({[INFILE]expresión_aritmética |NULL}, ..., {[INFILE]expresión_aritmética |NULL};) |sub_búsqueda]

El comando INSERT se utiliza para añadir datos a una tabla existente. La tabla en donde los datos se añaden se pasa utilizando un argumento de tipo nom_sql o cadena_sql. Los argumentos opcionales tipo ref_columna permiten definir las columnas en las cuales insertar los valores. Si no se pasa ref_columna, los valores se insertarán en el mismo orden que en la base (el primer valor pasado se insertará en la primera columna, el segundo valor en la segunda columna, y así sucesivamente).

Nota: este comando no soporta campos 4D de tipo Objeto.

La palabra clave VALUES se utiliza para pasar el o los valor(es) a insertar en la(s) columna(s) especificada(s). Puede pasar una expresión_aritmética o NULL. Por otra parte, una subconsulta se puede pasar en la palabra clave VALUES con el fin de insertar una selección de datos que se pasan como los valores.

El número de valores pasados vía la palabra clave VALUES debe coincidir con el número de columnas especificado por el argumento de tipo ref_columna pasado y cada uno de ellos también debe coincidir con el tipo de datos de la columna correspondiente o al menos ser convertible a ese tipo de datos.

La palabra clave INFILE le permite utilizar el contenido de un archivo externo para especificar los valores de un nuevo registro. Esta palabra clave sólo se debe utilizar con expresiones de tipo VARCHAR. Cuando se pasa la palabra clave INFILE, el valor expresión_aritmética se evalúa como una ruta del archivo, y si se encuentra el archivo, el contenido del archivo se inserta en la columna correspondiente. Sólo los campos de tipo texto o BLOB pueden recibir valores de un INFILE. El contenido del archivo se transfiere como datos brutos, sin interpretación.
El archivo buscado debe estar en el equipo que aloja el motor SQL, incluso si la consulta viene de un cliente remoto. Del mismo modo, la ruta debe expresarse respetando la sintaxis del sistema operativo del motor de SQL. Puede ser absoluta o relativa.

El comando INSERT es soportado en búsquedas mono y multilíneas. Sin embargo, una instrucción INSERT multilíneas no permite efectuar operaciones UNION y JOIN.

El motor de 4D permite la inserción de valores multilíneas, que pueden simplificar y optimizar el código, en particular, al introducir grandes cantidades de datos. La sintaxis de las inserciones multilíneas es del tipo:
INSERT INTO {sql_name | sql_string}

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


Esta sintaxis se ilustra en los ejemplos 3 y 4.

Este ejemplo simple permite insertar una selección de la table2 en la table1:

INSERT INTO table1 (SELECT * FROM table2)

Este ejemplo crea una tabla y luego inserta los valores en ella:

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

La sintaxis multilíneas permite evitar la repetición tediosa de líneas:

INSERT INTO MiTabla
(Campo1,Campo2,CampoBol,CampoHora,CampoInfo)
VALUES
(1,1,1,'11/01/01','11:01:01',’Primera línea’),
(2,2,0,'12/01/02','12:02:02',’Segunda línea’),
(3,3,1,'13/01/03','13:03:03',’Tercera línea’),
………
(7,7,1,'17/01/07','17:07:07',’Séptima línea’);

También puede utilizar las variables o arrays 4D con la sintaxis multilíneas:

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

Nota: no es posible combinar las variables simples y los arrays en la misma instrucción INSERT.



Ver también 

DELETE
expresión_aritmética
ref_columna
sub_consulta

 
PROPIEDADES 

Producto: 4D
Tema: Comandos SQL

 
HISTORIA 

 
ARTICLE USAGE

Manual de SQL ( 4D v16)