sql >> Database >  >> RDS >> PostgreSQL

Juiste manier om SQL te selecteren en bij te werken

Ten eerste, op minimaal je zou een SELECT ... FOR UPDATE moeten doen dus je vergrendelt de rijen tegen andere SELECT ... FOR [SHARE|UPDATE] toegang. U moet dit binnen een transactie doen en die transactie vasthouden totdat u de laatste rij bijwerkt en commit .

De rijen die u SELECT ... FOR UPDATE niet vergrendeld tegen normaal SELECT; ze zijn nog steeds leesbaar voor andere transacties die geen gebruik maken van FOR UPDATE of FOR SHARE .

Beter nog, probeer het hele ding te herformuleren als een UPDATE ... FROM of een andere set-gebaseerde bewerking waarbij u al het werk in één query doet. Het zal over het algemeen veel beter presteren dan een SELECT ... FOR UPDATE gevolgd door een stroom van UPDATE v.




  1. De Drop Column-bug in Oracle 18c en 19c aanpakken

  2. SQL Alleen rijen selecteren waar meerdere relaties bestaan

  3. Hoe verbind ik C# met Postgres?

  4. Onderscheid duplicaten in een foreach-lus van sql