INSERT

4D - Documentation   Français   English   German   Japanese   Manuel de référence SQL 4D, Sommaire   Manuel de référence SQL 4D, Index   Retour   Précédent   Suivant

version 11.3 (Modifiée)


INSERT INTO {nom_sql | chaîne_sql}

[(ref_colonne, ..., ref_colonne)]

[VALUES({[INFILE]expression_arithmétique |NULL}, ..., {[INFILE]expression_arithmétique |NULL};) |sous_requête]

Description

La commande INSERT permet d'ajouter des données dans une table existante. La table dans laquelle les données sont insérées est désignée via un argument de type nom_sql ou chaîne_sql. Les arguments facultatifs ref_colonne permettent de définir les colonnes dans lesquelles insérer les valeurs. Si aucune ref_colonne n'est passée, les valeurs seront insérées dans l'ordre des colonnes de la base (la première valeur passée sera insérée dans la première colonne, la deuxième dans la deuxième colonne, et ainsi de suite).

Le mot-clé VALUES permet de passer la ou les valeur(s) à insérer dans la ou les colonne(s) spécifiée(s). Vous pouvez passer soit une expression_arithmétique, soit NULL. Alternativement, une sous_requête peut être passée au mot-clé VALUES afin d'insérer une sélection de données en tant que valeurs.

Le nombre de valeurs passées via le mot-clé VALUES doit correspondre au nombre de colonnes défini par le ou les argument(s) ref_colonne. En outre, le type des données insérées doit correspondre à celui des colonnes de la table, ou au moins pouvoir être converti dans ce type.

Le mot-clé INFILE permet d'utiliser le contenu d'un fichier externe pour définir les valeurs d'un nouvel enregistrement. Ce mot-clé doit être utilisé uniquement avec des expressions de type VARCHAR. Lorsque le mot-clé INFILE est passé, la valeur expression_arithmétique est évaluée en tant que chemin d'accès de fichier ; si le fichier est trouvé, le contenu du fichier est inséré dans la colonne correspondante. Seuls des champs de type texte ou BLOB peuvent recevoir des valeurs issues d'un INFILE. Le contenu du fichier est transféré sous forme de données brutes, sans interprétation.

Le fichier recherché doit se trouver sur l'ordinateur hébergeant le moteur SQL, même si la requête provient d'un client distant. De même, le chemin d'accès doit être exprimé en respectant la syntaxe du système d'exploitation du moteur SQL. Il peut être absolu ou relatif.

La commande INSERT est utilisable dans les requêtes mono et multi-lignes. Toutefois, une requête INSERT multi-lignes ne permet pas d'effectuer d'opérations UNION et JOIN.

Le moteur de 4D admet les insertions multi-lignes de valeurs, ce qui permet d'alléger et d'optimiser le code, notamment lors de l'insertion de grandes quantités de données. La syntaxe des insertions multi-lignes est du type :

INSERT INTO {nom_sql | chaîne_sql}

[(ref_colonne, ..., ref_colonne)]

VALUES(expression_arithmétique, ..., expression_arithmétique), ..., (expression_arithmétique, ..., expression_arithmétique);

Cette syntaxe est illustrée dans les exemples 3 et 4.

Exemples

1. Cet exemple simple permet d'insérer une sélection de la table2 dans la table1 :

   INSERT INTO table1 (SELECT * FROM table2) 

2. Cet exemple crée une table et insère des valeurs :

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

3. La syntaxe multi-lignes permet d'éviter la répétition fastidieuse de lignes :

   INSERT INTO MaTable
      (Chp1,Chp2,ChpBol,ChpDate,ChpHeure, ChpInfo)
      VALUES
         (1,1,1,'11/01/01','11:01:01','Premiere ligne'),
         (2,2,0,'12/01/02','12:02:02','Deuxième ligne'),
         (3,3,1,'13/01/03','13:03:03','Troisième ligne'),
         ………
         (7,7,1,'17/01/07','17:07:07','Septième ligne');

4. Vous pouvez également utiliser des variables ou des tableaux 4D avec la syntaxe multi-lignes :

      INSERT INTO MaTable
         (Chp1,Chp2,ChpBol,ChpDate,ChpHeure, ChpInfo)
      VALUES
         ( :vTabId, :vTabIdx, :vTabbol, :vTabdate, :vTabL, :vTabText);

Note : Vous ne pouvez pas combiner des variables simples et des tableaux dans la même instruction INSERT.

Référence

DELETE, expression_arithmétique, ref_colonne, sous_requête.


4D - Documentation   Français   English   German   Japanese   Manuel de référence SQL 4D, Sommaire   Manuel de référence SQL 4D, Index   Retour   Précédent   Suivant