INSERT

Nom

INSERT — insère de nouvelles lignes dans une table
INSERT INTO table [ ( column [, ...] ) ]
    { VALUES ( expression [, ...] ) | SELECT query }
  

Entrées

table

nom d'une table existante

column

nom d'une colonne dans table.

expression

expression valide ou valeur à assigner à column.

query

requête valide. Voir la commande SELECT pour plus d'information sur les arguments valides.

Sorties

INSERT oid 1

message retourné si une seule ligne a été insérée. oid est le OID numérique des lignes insérées.

INSERT 0 #

message retourné si plusieurs lignes sont insérées. # est le nombre de lignes insérées.

Description

INSERT permet d'insérer de nouvelles lignes dans une table. On peut insérer une seule ligne ou plusieurs lignes comme résultat d'une requête. Les colonnes dans la liste cible peuvent être listées dans n'importe quel ordre. Dans chaque colonne non présente dans la liste cible sera insérée la valeur par défaut, si la colonne n'a pas de valeur par défaut déclarée elle sera supposée comme ayant la valeur NULL. Si l'expression pour chaque colonne n'est pas de type correct, le type contrainte automatique sera essayé.

Vous devez avoir le privilège insert pour une table afin de l'attacher to it, aussi bien que le privilege select sur n'importe quelle table spécifiée dans la clause WHERE.

Utilisation

insère une seule ligne dans la table films:
INSERT INTO films VALUES
    ('UA502','Bananas',105,'1971-07-13','Comedy',INTERVAL '82 minute');
   

dans le second exemple la colonne date_prod est omise et désormais aura la valeur NULL :
INSERT INTO films (code, title, did, date_prod, kind)
    VALUES ('T_601', 'Yojimbo', 106, DATE '1961-06-16', 'Drama');
   

insère une seule ligne dans la table distributors; notez que seule la colonne nameest spécifiée, ainsi la colonne omise se verra assigner la valeur par défaut de celle-ci :
INSERT INTO distributors (name) VALUES ('British Lion');
   

insère plusieurs lignes dans la table films depuis la table tmp :
INSERT INTO films SELECT * FROM tmp;
   

insère des tableaux (voir le The PostgreSQL User's Guide pour plus d'information sur les tableaux) :
-- Create an empty 3x3 gameboard for noughts-and-crosses
-- (all of these queries create the same board attribute)
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,'{{,,},{,,},{,,}}');
   

Compatibilité

SQL92

INSERT est pleinement compatible avec SQL92. Les limitations possibles dans les fonctionnalités de la clause query sont documentées pour la commande SELECT.