Partie I
SQL de base
38
© Éditions Eyrolles
q
ON DUPLICATE KEY UPDATE permet de mettre à jour l’enregistrement présent dans
la table, qui a déclenché l’erreur de doublon (dans le cas d’un index UNIQUE ou d’une
clé primaire). Dans ce cas le nouvel enregistrement n’est pas inséré, seul l’ancien est
mis à jour.
À l’aide d’exemples, nous allons détailler les possibilités de cette instruction en considérant la
majeure partie des types de données proposés par MySQL.
Renseigner toutes les colonnes
Ajoutons trois lignes dans la table Compagnie en alimentant toutes les colonnes de la table
par des valeurs. La deuxième insertion utilise le mot-clé DEFAULT pour affecter explicitement
la valeur par défaut à la colonne ville . La troisième insertion attribue explicitement la valeur
NULL à la colonne nrue .
Renseigner certaines colonnes
Insérons deux lignes dans la table Compagnie en ne précisant pas toutes les colonnes. La
première insertion affecte implicitement la valeur par défaut à la colonne ville . La
deuxième donne implicitement la valeur NULL à la colonne nrue .
La table Compagnie contient à présent les lignes suivantes :
Tableau 2-1 Insertions
Instruction SQL
Commentaires
INSERT INTO Compagnie
VALUES ('SING', 7, 'Camparols', 'Singapour',
'Singapore AL');
Toutes les valeurs sont renseignées
dans l’ordre de la structure de la table.
INSERT INTO Compagnie
VALUES ('AC', 10, 'Gambetta', DEFAULT ,
'Air France');
DEFAULT explicite.
INSERT INTO Compagnie
VALUES ('AN1', NULL , 'Hoche', 'Blagnac',
'Air Nul1');
NULL explicite.
Web
Tableau 2-2 Insertions de certaines colonnes
Instruction SQL
Commentaires
INSERT INTO Compagnie(comp, nrue, rue, nomComp)
VALUES ('AF', 8, 'Champs Elysées', 'Castanet Air');
DEFAULT implicite .
INSERT INTO Compagnie(comp, rue, ville, nomComp)
VALUES ('AN2', 'Foch', 'Blagnac', 'Air Nul2');
NULL sur nrue implicite.
Web
Précédent

- 60/418

Suivant