I am new to the topic, and I am trying to verify what I understand. so please consider the following example:-
Transaction contains a select and update statements, where update statement depends on the result set returned from the select statement. User A and B concurrently executes the transaction, Both users selected the data and about to execute Update. If User A executes the update first, User B will probably have a bug; because it has not up to date result set. This is called Phantom Read case.
For serializable isolation level: The above case will never happen. Transactions are completely isolated and can't work concurrently. Transaction of User B can't execute the select statement till User A completed its transaction. User B will Wait till transaction A complete.
For Repeatable read isolation level: Transaction B can read but cannot do modifications for data. Which can cause a Phantom Read.
Can you say whether this is a right understanding?