sql >> Database teknologi >  >> RDS >> Mysql

mysql betinget indsæt - hvis ikke findes, indsæt

Brug REPLACE - fungerer præcis som INSERT, bortset fra at hvis en gammel række i tabellen har samme værdi som en ny række for en PRIMÆR NØGLE eller et UNIKT indeks, slettes den gamle række før den nye række indsættes.

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

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

Rediger:Da du ikke kan bruge REPLACE, er en anden mulighed at:indstille begrænsningsindekser for tabeldataene (primær nøgle, unikhed) og bruge INSERT IGNORE

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


  1. MySQL:hvordan man får forskellen mellem to tidsstempler på sekunder

  2. Kan Postgres-datatypen NUMERIC gemme signerede værdier?

  3. Hvorfor er Oracle tabel/kolonne/indeksnavne begrænset til 30 tegn?

  4. LPAD i SQL Server 2008