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

Как да направите ActiveRecord ThreadSafe

Противно на коментарите, едновременните вмъквания в една и съща таблица са напълно допустими в PostgreSQL, така че тук има условие за състезание.

За да направите това безопасно, трябва да имате unique ограничение (или primary key ) на column_name . След това дублираните вмъквания ще хвърлят изключение, което можете да уловите и да опитате отново с актуализация.

Ако нямате уникално ограничение, тогава трябва да LOCK TABLE ... IN EXCLUSIVE MODE за предотвратяване на едновременни качвания. Или използвайте един от безопасните за едновременност методи, описани в:

Как да UPSERT (ОБЛИВАНЕ, ВМЪКВАНЕ ... ПРИ ДУБЛИРАНА АКТУАЛИЗАЦИЯ) в PostgreSQL?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. За какво се използва конструктор на ред?

  2. Как да използвам подзаявка в django?

  3. Как мога да предотвратя SQL инжектиране с произволен JSONB низ на заявка, предоставен от външен клиент?

  4. Напредък в онлайн надстройката

  5. Какъв е еквивалентният синтаксис за Outer Apply в PostgreSQL