Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL insere onde não existe / se não existir


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)
  1. Na verdade, três sintaxes; você também pode usar SET . Se você estiver inserindo apenas um registro, este será funcionalmente equivalente a VALUES , mas sem dúvida mais legível.