sql >> Databasteknik >  >> RDS >> Mysql

mysql villkorlig infogning - om inte existerar infoga

Använd REPLACE - fungerar precis som INSERT, förutom att om en gammal rad i tabellen har samma värde som en ny rad för en PRIMÄRNYCKEL eller ett UNIKT index, tas den gamla raden bort innan den nya raden infogas.

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) 

Redigera:Eftersom du inte kan använda REPLACE är ett annat alternativ att:ställa in begränsningsindex för tabelldata (primärnyckel, unikhet) och använda INSERT IGNORE

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


  1. PostgreSQL FEL:funktion to_tsvector (tecken varierar, okänt) finns inte

  2. Sammanfoga JSONB-värden i PostgreSQL?

  3. SQLite VISA TABELLER Motsvarande

  4. mysql-tjänsten startar inte/lägger på - timeout (Ubuntu, MariaDB)