Select for update is not working like the way I expected it:
FIRST SESSION:
mysql> start transaction;
Query OK, 0 rows affected (0.00 sec)
mysql> select video_id from videos_innodb where state='QUEUE' limit 5
FOR UPDATE;
+----------+
| video_id |
+----------+
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
+----------+
5 rows in set (0.00 sec)
So, you notice I didn't COMMIT those rows...
Check the second session opened:
mysql> START TRANSACTION;
Query OK, 0 rows affected (0.00 sec)
mysql> select video_id from videos_innodb where state='QUEUE' limit 5
FOR UPDATE;
+----------+
| video_id |
+----------+
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
+----------+
Same thing, I dont want anyway other session to be able to get that
selection until I commit.
Any other suggestion?
Michael Dykman wrote:
SELECT .... FOR UPDATE
On Feb 4, 2008 4:58 PM, Frederic Belleudy <[EMAIL PROTECTED]> wrote:
Hi there, I'm new with innodb and I'm not sure it's good to go with
innodb for my personnal goals.
Ok, let's assume I 've a table and want to select the first 10 rows from
that table but I want to be sure that no other scripts will select the
same rows I've previously got by the first script.
How can I do that?
my table contains one primary key. Let's say id is the column name.
So my first script is running and select the ids: 1, 2, 3 .... 10
Then that script will play with the returned ids.
In the same time, I'm running a second script and do the same select.
But I don't want him to get the first 10 ids.
The only thing I can think about is to lock WRITE my table. I taught
innodb was able to automatically lock the selected rows and not allowed any
other script to get the same rows until it's commited...
Tks
--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]
--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]