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.