Documentation PostgreSQL 7.4.29 | ||||
---|---|---|---|---|
Précédent | Arrière rapide | Avance rapide | Suivant |
INSERT INTO table [ ( colonne [, ...] ) ] { DEFAULT VALUES | VALUES ( { expression | DEFAULT } [, ...] ) | requête }
INSERT permet d'insérer de nouvelles lignes dans une table. Il est possible d'insérer une ligne à la fois ou plusieurs lignes comme résultat d'une requête.
Les colonnes de la liste cible peuvent être données dans n'importe quel ordre. Chaque colonne absente de la liste cible sera insérée en utilisant une valeur par défaut, que sa valeur par défaut soit déclarée ou NULL.
Si l'expression pour chaque colonne n'est pas du bon type de données, la conversion automatique de type sera tentée.
Vous devez avoir le droit INSERT sur une table pour pouvoir lui insérer des lignes. Si vous utilisez la clause requête pour insérer des lignes à partir d'une requête, vous avez aussi besoin d'avoir un droit SELECT sur toute table utilisée dans la requête.
Le nom d'une table existante (pouvant être qualifié du nom du schéma).
Le nom d'une colonne dans table.
Toutes les colonnes auront leurs valeurs par défaut.
Une expression ou une valeur à affecter à colonne.
La colonne sera remplie avec sa valeur par défaut.
Une requête (instruction SELECT) fournissant les lignes à insérer. Référez-vous à l'instruction SELECT pour une description de la syntaxe.
En cas de succès, une commande INSERT renvoie un code de la forme
INSERT oid nombre
Le nombre correspond au nombre de lignes insérées. Si nombre vaut exactement un et que la table cible contient des OID, alors oid est l'OID affecté à la ligne insérée. Sinon, oid vaut zéro.
Insérez une seule ligne dans la table films :
INSERT INTO films VALUES ('UA502', 'Bananas', 105, '1971-07-13', 'Comédie', '82 minutes');
Dans ce second exemple, la dernière colonne longueur est omise et, du coup, elle aura la valeur par défaut, NULL :
INSERT INTO films (code, titre, did, date_prod, genre) VALUES ('T_601', 'Yojimbo', 106, '1961-06-16', 'Drame');
Le troisième exemple utilise la clause DEFAULT pour les colonnes date plutôt que de spécifier une valeur :
INSERT INTO films VALUES ('UA502', 'Bananas', 105, DEFAULT, 'Comédie', '82 minutes'); INSERT INTO films (code, title, did, date_prod, kind) VALUES ('T_601', 'Yojimbo', 106, DEFAULT, 'Drame');
Cet exemple insère plusieurs lignes dans la table films à partir de la table table tmp :
INSERT INTO films SELECT * FROM tmp;
Cet exemple insére dans des colonnes de type tableau :
-- Create an empty 3x3 gameboard for noughts-and-crosses -- (all of these commands create the same board) 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,'{{,,},{,,},{,,}}');
INSERT est totalement compatible avec le standard SQL. Les limitations possibles des clauses requête sont documentées sous SELECT.
Précédent | Sommaire | Suivant |
GRANT | Niveau supérieur | LISTEN |