Mysql
 sql >> Base de données >  >> RDS >> Mysql

MySQL insère là où il n'existe pas / s'il n'existe pas

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)
  1. 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.