sql >> Databáze >  >> RDS >> PostgreSQL

Co je lepší - vyvolání výjimky nebo kontrola chyb předem

Měli byste použít metodu "zkuste a chyť výjimku" jednoduše proto, že to stejně musíte udělat.

Pokud nejprve zkontrolujete, nic nebrání tomu, aby někdo vložil řádek pro daného uživatele mezi váš šek a vaši přílohu. V takovém případě bude uživatel v tabulce, i když jej váš šek nenašel.

Krátce k tomu, aby bylo možné spustit check-and-insert v rámci nějaké transakce (takže nikdo jiný nemůže vložit tohoto uživatele mezitím). nemůžete si být jisti, že tato výjimka bude fungovat.

A přestože mnoho DBMS poskytuje transakční podporu, nevím o žádném tím se uzamkne řádek, který musíte ještě vložit :-)

Samozřejmě, pokud je vaše aplikace navržena tak, že pouze váš proces bude vkládat uživatele (a serializovat), můžete použít metodu check-first. Ale vložil bych hojné komentáře v tom smyslu, že pokud se někdy rozšíříte, bude nutné to znovu navštívit.



  1. Vyberte 10 nejlepších záznamů pro každou kategorii

  2. Pořadí zápisů do protokolu obecných dotazů MySQL

  3. Jak se mohu připojit k Oracle v ADO.NET Entity Data Model

  4. ORA 00904 Chyba:Neplatný identifikátor