INSERT

Nom

INSERT -- cr�e de nouvelles lignes dans une table

Synopsis

INSERT INTO table [ ( colonne [, ...] ) ]
    { DEFAULT VALUES | VALUES ( { expression | DEFAULT } [, ...] ) | requ�te }

Description

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.

Param�tres

table

Le nom d'une table existante (pouvant �tre qualifi� du nom du sch�ma).

colonne

Le nom d'une colonne dans table.

DEFAULT VALUES

Toutes les colonnes auront leurs valeurs par d�faut.

expression

Une expression ou une valeur � affecter � colonne.

DEFAULT

La colonne sera remplie avec sa valeur par d�faut.

requ�te

Une requ�te (instruction SELECT) fournissant les lignes � ins�rer. R�f�rez-vous � l'instruction SELECT pour une description de la syntaxe.

Sorties

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.

Exemples

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,'{{,,},{,,},{,,}}');

Compatibilit�

INSERT est totalement compatible avec le standard SQL. Les limitations possibles des clauses requ�te sont document�es sous SELECT.