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

Korrekt måde at SQL vælge og opdatere

Først minimum du burde lave en SELECT ... FOR UPDATE så du låser rækkerne mod andre SELECT ... FOR [SHARE|UPDATE] adgang. Du skal gøre dette inde i en transaktion og holde denne transaktion tilbage, indtil du opdaterer den sidste række og commit .

De rækker du SELECT ... FOR UPDATE ikke låst mod normal SELECT; de er stadig læsbare for andre transaktioner, der ikke bruger FOR UPDATE eller FOR SHARE .

Endnu bedre, prøv at omformulere det hele som en UPDATE ... FROM eller anden sæt-baseret operation, hvor du udfører alt arbejdet i en enkelt forespørgsel. Det vil generelt præstere enormt bedre end en SELECT ... FOR UPDATE efterfulgt af en strøm af UPDATE s.




  1. hvordan arbejder man med dynamiske data og google-diagrammer?

  2. Kan jeg gemme et 'objekt' i en SQL Server-database?

  3. Konverter unix tidsstempel til Dato og DateTime - SQL/ORACLE

  4. Fremskynd indsættelse i MySQL