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

insertion conditionnelle mysql - si elle n'existe pas, insertion

Utilisez REPLACE - fonctionne exactement comme INSERT, sauf que si une ancienne ligne de la table a la même valeur qu'une nouvelle ligne pour une PRIMARY KEY ou un UNIQUE index, l'ancienne ligne est supprimée avant l'insertion de la nouvelle ligne.

http://dev.mysql.com/doc/refman/5.0 /fr/replace.html

-- For your example query
REPLACE INTO table_name(name, value, id) VALUES
('phill', 'person', 12345) 

Modifier :puisque vous ne pouvez pas utiliser REPLACE, une autre option consiste à :définir des index de contrainte pour les données de la table (clé primaire, unicité) et utiliser INSERT IGNORE

INSERT IGNORE INTO table_name
SET name = 'phill',
    value = 'person',
    id = 12345;