sql >> Database >  >> RDS >> Mysql

Waarom SELECTEREN VOOR UPDATE gebruiken?

SELECT ... FOR UPDATE zal het record vergrendelen met een schrijf (exclusief) slot totdat de transactie is voltooid (toegezegd of teruggedraaid).

Om een ​​record te selecteren en ervoor te zorgen dat het niet wordt gewijzigd totdat u het bijwerkt, kunt u een transactie starten, selecteer het record met SELECT ... FOR UPDATE , voer wat snelle verwerking uit, werk het record bij en voer vervolgens de transactie door (of draai terug).

Als u SELECT ... FOR UPDATE . gebruikt buiten een transactie (autocommit AAN), dan wordt de vergrendeling nog steeds onmiddellijk vrijgegeven, dus zorg ervoor dat u een transactie gebruikt om de vergrendeling te behouden.

Houd voor de prestaties transacties niet erg lang open, dus de update moet onmiddellijk worden uitgevoerd.




  1. MySQLi gebruiken van een andere klasse in PHP

  2. Proactieve SQL Server-statuscontroles, deel 3:instantie- en database-instellingen

  3. Wijzigingen in een beschrijfbare partitie kunnen onverwacht mislukken

  4. Alleen PostgreSQL in het geheugen uitvoeren