Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 136
  • Last Modified:

Phantom reads in transaction...

I am reading the following definition for Phantom reads: Occur when you perform an update or delete on a set of rows when another transaction is performing an insert or delete that affects one or more rows in that same set of rows.

Question: Shouldn't this read has performed' instead of 'is performing'?

Thanks.
0
Mike Eghtebas
Asked:
Mike Eghtebas
2 Solutions
 
Steve WalesSenior Database AdministratorCommented:
I would say not.

"Is performing" indicates that another transaction has an insert or delete in process while you're trying to do your read.

That means that the insert or delete may have happened, but since a commit or rollback hasn't been processed at that time, that the transaction is still in flight, so is still in the process of being performed from a database perspective.   It may have been done already, but since it hasn't been committed yet as far as the database in concerned, it's not a permanent fixture in the database yet.

"Has performed" from a database perspective would mean that it had been committed to the database.
0
 
Julian HansenCommented:
I think what they are saying is that this occurs while another query is changing the data. Two select queries run at the same time while another is modifying the database. Select Query 2 yields different results from Select Query 1 because while in progress an INSERT or UPDATE runs to alter the results for Select Query 2
0
 
Mike EghtebasDatabase and Application DeveloperAuthor Commented:
Thank you.
0

Featured Post

Receive 1:1 tech help

Solve your biggest tech problems alongside global tech experts with 1:1 help.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now