PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Transakcja nie obsługuje równoległych poleceń za pośrednictwem Task.WhenAll

Nie ma w tym nic magicznego, pojawia się błąd, ponieważ połączenie, którego używasz podczas wstawiania CompanyAddress, nie jest tym, o którym myślisz.

To nowe połączenie. Po uruchomieniu wstawiania ComapnyPaymentInfo korzystasz z połączenia, które jest już powiązane z Twoją transakcją. Oczekuje na nowe polecenia, ponieważ czekałeś w poprzednim kroku.

Z drugiej strony użycie Task.WhenAll() spowoduje próbę użycia wielu wątków. Jeśli połączenie jest zajęte wykonywaniem polecenia, nie zostanie ono użyte i pojawi się nowe.

Pamiętaj, że korzystając z Transakcji, masz tylko jedno dostępne połączenie, nie możesz korzystać z równoległości.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Unikanie zakleszczeń PostgreSQL podczas wykonywania zbiorczych operacji aktualizacji i usuwania

  2. Pobieranie identyfikatora seryjnego z partii wstawionych wierszy w postgresql

  3. Przywracanie kopii zapasowych PostgreSQL i TimescaleDB za pomocą ClusterControl CLI

  4. Najlepsze narzędzia GUI dla PostgreSQL

  5. Jak zbudować tabelę znormalizowaną z pliku tekstowego zdenormalizowanego?