sql >> Databáze >  >> RDS >> Mysql

Vytvořit, pokud záznam neexistuje, jinak aktualizovat?

Mnoho vývojářů stále provádí dotaz, aby zkontrolovali, zda je pole přítomno v tabulce, a poté provedou vkládací nebo aktualizační dotaz podle výsledku prvního dotazu. Zkuste použít syntaxi ON DUPLICATE KEY, je to mnohem rychlejší a lepší poté provedeme 2 dotazy. Další informace naleznete zde

pokud chcete zachovat stejnou hodnotu pro c, můžete provést aktualizaci se stejnou hodnotou

rozdíl mezi 'nahradit' a 'na duplicitním klíči':

pokud vaše tabulka nemá primární klíč nebo jedinečný klíč, nahrazení nedává žádný smysl.

Můžete také použít VALUES abyste nemuseli zadávat skutečné hodnoty dvakrát. Např. místo

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

můžete použít

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

Kde VALUES(c) se vyhodnotí na hodnotu zadanou dříve (6).



  1. Je Oracle SYS_GUID() UUID RFC 4122 kompatibilní?

  2. Závislost SQL na databázi MariaDB/MySQL

  3. PostgreSQL:Jak nastavím search_path na uživatelské úrovni?

  4. LOAD DATA není povoleno v uložených procedurách