Il existe deux méthodes pour alimenter
des tables avec des données. La première utilise
l’ordre INSERT, comme dans
la norme SQL et la seconde l’ordre COPY pour
notamment le cas de volumes de données importants à l’insertion.
a. L’ordre INSERT ... INTO
L’ordre INSERT respecte
la notation de la norme SQL en apportant quelques modifications.
Le synopsis de l’ordre INSERT est le suivant :
[ WITH [ RECURSIVE ] requête_cte [, ...] ]
INSERT INTO table
[ ( colonne [, ...] ) ]
{
DEFAULT VALUES |
VALUES ( { expression | DEFAULT } [, ...] ) |
requête
}
[ ON CONFLICT [ ON CONSTRAINT contrainte ]
DO NOTHING | DO UPDATE SET { colonne = expression } [, ...]
[ WHERE condition ] ]
[ RETURNING * | expr ]
Selon le nom de la table, la liste des colonnes
permet d’indiquer celles qui seront utilisées.
Lorsque toutes les colonnes de la table sont utilisées,
cette liste n’est pas obligatoire.
Pour chaque colonne, la valeur est exprimée
soit avec sa valeur littérale, soit avec une expression,
en respectant l’ordre des colonnes indiqué dans
la première partie de la commande.
L’exemple qui suit montre ...