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).