Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Bedingte mysql-Einfügung - falls nicht vorhanden, einfügen

Verwenden Sie REPLACE - Funktioniert genau wie INSERT, außer dass, wenn eine alte Zeile in der Tabelle denselben Wert wie eine neue Zeile für einen PRIMARY KEY oder einen UNIQUE-Index hat, die alte Zeile gelöscht wird, bevor die neue Zeile eingefügt wird.

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

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

Bearbeiten:Da Sie REPLACE nicht verwenden können, besteht eine andere Option darin:Festlegen von Einschränkungsindizes für die Tabellendaten (Primärschlüssel, Eindeutigkeit) und Verwenden von INSERT IGNORE

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