PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Кое е по-добре - хвърляне на изключение или проверка за грешки предварително

Трябва да използвате метода „опитай и улови изключение“, просто защото така или иначе трябва да го направиш.

Ако първо поставите отметка, няма какво да попречи на някой да вмъкне ред за този потребител между вашата проверка и вмъкването ви, в който случай потребителят ще бъде в таблицата, въпреки че вашата проверка не го е намерила.

Освен възможността да стартирате проверката и вмъкването в рамките на някакъв вид транзакция (така че никой друг да не може да вмъкне този потребител междувременно). не можете да сте сигурни, че не-изключението ще работи.

И въпреки че много СУБД предоставят поддръжка на транзакции, не знам за никое което ще заключи ред, който все още не сте вмъкнали :-)

Разбира се, ако вашето приложение е проектирано по такъв начин, че само вашият процес ще вмъква потребители (и ще се сериализира), можете да използвате метода check-first. Но бих вложил обилни коментари в смисъл, че ще трябва да бъде преразгледан, ако някога го увеличите.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да вмъкна обновяем запис с колона JSON в PostgreSQL с помощта на JOOQ?

  2. Две SQL LEFT JOINS дават неправилен резултат

  3. Първата и последната стойност на прозоречната функция в един ред в PostgreSQL

  4. Една система за сигурност за приложения, пул на връзки и PostgreSQL - Случаят за LDAP

  5. Какъв е еквивалентният синтаксис на PostgreSQL на CONNECT BY... ЗАПОЧНЕТЕ С Oracle?