INSERT
Las declaraciones admiten dos sintaxis:una que usa VALUES
y uno que utiliza una consulta.
No puede combinarlos, y solo la sintaxis de consulta admite WHERE
cláusulas. Entonces:
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 realidad tres sintaxis; también puedes usar
SET
. Si solo está insertando un registro, este es funcionalmente equivalente aVALUES
, pero podría decirse que es más legible.