Insert where… not exists

Baptiste Autin, le 19 janvier 2015

Petit problème du jour :

Soit la TABLE bibelot (nom VARCHAR(200));
En MySQL, écrire la requête qui insère la donnée ‘x’ dans la colonne ‘nom’, à condition qu’un enregistrement contenant cette même donnée n’y soit pas déjà présent (autrement, la requête ne doit rien faire dans ce cas).

Rappel : INSERT INTO VALUES ... WHERE ... n’existe pas en MySQL.


Réponse :
INSERT INTO bibelot (nom) SELECT 'x' FROM DUAL WHERE NOT EXISTS( SELECT 1 FROM bibelot WHERE nom = 'x');

Laisser une réponse

«     »