Jump to content

Archived

This topic is now archived and is closed to further replies.

dptr1988

Do I need to LOCK tables?

Recommended Posts

I'm working on a script that reads numbers out of a row in the table, adds/subtracts the numbers, then updates the row in the table. I was wondering if another script reads the same row before the first script updates that row and then updates that row before or after the first after the first script updats the row, if the row would be incorrect. I don't think that is easy to understand so let me try again with a scenario with exagerated timing.

Script 1 and Script 2 take all of the columns in row1 and add 1 to each column then update row1 with the new columns

Here is the table for the example:

[tt]    num1 num2 num3
-------------------
row1 1    1    1


This is the sequence of scenario:

Seconds    Action
------------------------------------------------
00            Script 1 reads all of the columns in row 1
01            Script 2 reads all of the columns in row 1
02            Script 1 is done processing and updates row1 with these values 2,2,2
03            Script 2 is done processing and updates row1 with these values 2,2,2
[/tt]

Is it possible for this scenario to happen? If it does happen, Would the value of row1 be 2,2,2 instead of 3,3,3 like I was wanting?

I haven't had trouble like this yet, but was worried that I might cause trouble.

Thanks



Share this post


Link to post
Share on other sites
Look into transactions; [url=http://www.devarticles.com/c/a/MySQL/Using-Transactions-with-MySQL-4.0-and-PHP/]example[/url].

Share this post


Link to post
Share on other sites
This can be a problem without transactions / table locks; you won't get a consistent read otherwise, and you may get some inconsistencies.  There are some operations that are atomic, but most aren't.

Share this post


Link to post
Share on other sites

×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.