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

Nejúčinnější způsob, jak provést SQL 'INSERT IF NOT EXISTS'

insert ignore je lepší metoda z několika důvodů.

Z hlediska výkonu se kompiluje a spouští pouze jeden dotaz, nikoli dva. To ušetří režii přesunu věcí do az databáze.

Z hlediska údržby je lépe udržovat pouze jeden dotaz, protože logika je vše na jednom místě. Pokud jste přidali where například klauzule, pravděpodobně byste ji vynechali přidáním do dvou samostatných dotazů.

Pokud jde o přesnost, pouze jeden dotaz by neměl mít žádné (nebo alespoň mnohem méně) příležitostí pro podmínky závodu. Pokud je mezi select vložen řádek a insert , pak se stále zobrazí chyba.

Nicméně lepší než insert ignore je insert . . . on duplicate key update . Ten se pouze vyhne chybám pro problémy s duplikací. insert ignore možná ignoruje chyby, které vás skutečně zajímají.

Mimochodem, stejně byste měli kontrolovat chyby z výpisu.



  1. Proč používat bin2hex při vkládání binárních dat z PHP do MySQL?

  2. Jak vytvořit Serverless GraphQL API pro MySQL, Postgres a Aurora

  3. Jak vytvořím další sloupec automatického přírůstku MySQL?

  4. Jak vložit nové ID automatického zvýšení