sql >> Database >  >> RDS >> Mysql

mysql voorwaardelijk invoegen - indien niet bestaat invoegen

Gebruik REPLACE - werkt precies zoals INSERT, behalve dat als een oude rij in de tabel dezelfde waarde heeft als een nieuwe rij voor een PRIMAIRE SLEUTEL of een UNIEKE index, de oude rij wordt verwijderd voordat de nieuwe rij wordt ingevoegd.

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) 

Bewerken:aangezien u REPLACE niet kunt gebruiken, is een andere optie:constraint-indexen instellen voor de tabelgegevens (primaire sleutel, uniciteit) en INSERT IGNORE

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


  1. Een query schrijven met meerdere gedragingen

  2. MySQL - Hoe kan ik de varchar-grootte van een bestaande kolom in een database vergroten zonder bestaande gegevens te verbreken?

  3. Wat zijn Oracle-joins (Sql-joins)?

  4. Het optimaliseren van een SELECT-query die langzaam draait op Oracle die snel draait op SQL Server