INSERT
instruções suportam duas sintaxes:uma que usa VALUES
, e um que usa uma consulta.
Você não pode combiná-los, e apenas a sintaxe de consulta suporta WHERE
cláusulas. Então:INSERT INTO `surfed_site` (user, site)
SELECT '123', '456' FROM (SELECT 1) t
WHERE NOT EXISTS (SELECT site FROM `surfed_site` WHERE site=456)
- Na verdade, três sintaxes; você também pode usar
SET
. Se você estiver inserindo apenas um registro, este será funcionalmente equivalente aVALUES
, mas sem dúvida mais legível.