sql >> Database >  >> RDS >> Mysql

Maken als een item niet bestaat, anders bijwerken?

Veel ontwikkelaars voeren nog steeds een query uit om te controleren of een veld in een tabel aanwezig is en voeren vervolgens een insert- of update-query uit volgens het resultaat van de eerste query. Probeer de ON DUPLICATE KEY-syntaxis te gebruiken, dit is een stuk sneller en beter dan 2 queries uitvoeren. Meer info vind je hier

als u dezelfde waarde voor c wilt behouden, kunt u een update uitvoeren met dezelfde waarde

het verschil tussen 'vervangen' en 'op dubbele sleutel':

als uw tabel geen primaire of unieke sleutel heeft, heeft vervangen geen enkele zin.

U kunt ook de VALUES . gebruiken functie om te voorkomen dat de werkelijke waarden tweemaal moeten worden opgegeven. bijv. in plaats van

INSERT INTO table (a,b,c) VALUES (4,5,6) ON DUPLICATE KEY UPDATE c=6;

je kunt gebruiken

INSERT INTO table (a,b,c) VALUES (4,5,6) ON DUPLICATE KEY UPDATE c=VALUES(c);

Waar VALUES(c) zal evalueren tot de eerder gespecificeerde waarde (6).



  1. Bestel een MySQL-tabel met twee kolommen

  2. Hoe IPv6 van binair te converteren voor opslag in MySQL

  3. SQL rij-retourvolgorde

  4. MySQL:invoegen in meerdere tabellen in dezelfde query met BEGIN&COMMIT