I have question regarding what purpose we are using SELECT FOR UDPATE
? What does it do exactly?
I have 2 tables, from that I need to select rows from table
SELECT ... FOR UPDATE
will lock the record with a write (exclusive) lock until the transaction is completed (committed or rolled back).
To select a record and ensure that it's not modified until you update it, you can start a transaction, select the record using SELECT ... FOR UPDATE
, do some quick processing, update the record, then commit (or roll back) the transaction.
If you use SELECT ... FOR UPDATE
outside of a transaction (autocommit ON), then the lock will still be immediately released, so be sure to use a transaction to retain the lock.
For performance, do not keep transactions open for very long, so the update should be done immediately.