sql >> Databasteknik >  >> RDS >> Mysql

Snabbaste sättet att uppdatera en MySQL-tabell om rad finns annars infoga. Mer än 2 icke-unika nycklar

använd bara INSERT...ON DUPLICATE KEY UPDATE

INSERT INTO reports_adv (day, uid, siteid, cid, visits) 
VALUES ('$day', '$uid', '$sid', '$cid', 1)
ON DUPLICATE KEY UPDATE visits=visits+1;

men före allt annat bör du definiera en UNIQUE begränsning på kolumnerna.

ALTER TABLE reports_adv  ADD CONSTRAINT tb_uq UNIQUE (day, uid, siteid, cid)



  1. Returnera rader i exakt den ordning de infogades

  2. Hur väljer man standardavvikelse inom en rad? (i SQL - eller R :)

  3. Dynamisk fråga med variabelt antal IN (p1, p2, p3) argument

  4. Kan inte ansluta till databasserver (mysql workbench)