sql >> Database teknologi >  >> RDS >> PostgreSQL

Transaktion kan ikke håndtere parallelle kommandoer via Task.WhenAll

Der er ikke noget magisk her, du får fejlen, fordi den forbindelse, du bruger, når du indsætter CompanyAddress, ikke er den, du tror, ​​den er.

Det er en ny forbindelse. Når ComapnyPaymentInfo-indsættelsen er kørt, bruger du den forbindelse, der allerede er knyttet til din transaktion. Det afventer nye kommandoer, fordi du har ventet i det forrige trin.

Brugen af ​​Task.WhenAll() vil på den anden side forsøge at bruge flere tråde. Hvis en forbindelse er optaget af at køre en kommando, vil den ikke blive brugt, og en ny vil blive oprettet.

Husk, at når du bruger Transaktioner, har du kun én tilgængelig forbindelse, du kan ikke drage fordel af parallelitet.




  1. Parse XML-streng gemt på Oracle Table

  2. MySQL Datetime <-> Java Date

  3. Forebyggelse af SQL-injektion i C

  4. MySQL versus PDO