INSERT les instructions prennent en charge deux syntaxes :une qui utilise VALUES , et un qui utilise une requête.
Vous ne pouvez pas les combiner, et seule la syntaxe de la requête prend en charge WHERE clauses. Donc :
INSERT INTO `surfed_site` (user, site)
SELECT '123', '456' FROM (SELECT 1) t
WHERE NOT EXISTS (SELECT site FROM `surfed_site` WHERE site=456)
- En fait trois syntaxes ; vous pouvez également utiliser
SET. Si vous n'insérez qu'un seul enregistrement, celui-ci est fonctionnellement équivalent àVALUES, mais sans doute plus lisible.