|
Posted by Rik on 10/24/06 04:46
Chung Leong wrote:
> Daz wrote:
>> The problem is that when I have a few hundred results to compare.
>> Should I really query the database that many times? Could I do it
>> with a single query, and if so, how would I know what items the user
>> already owns a particular item, and update the database using the
>> PHP-MySQL layer. To my understanding, you can't execute and UPDATE
>> or INSERT statement from within a SELECT statement. Nor can you
>> execute several statements, such as multiple UPDATE statements or
>> several INSERT statements all in 1.
>
> No, that still wouldn't remove the race condition. What you want to do
> is put a unique constraint on the table, then have your script just
> perform the INSERT. If it fails, then you know you have a duplicate.
> MySQL also support the INSERT ... ON DUPLICATE KEY UPDATE syntax I
> believe.
Yup, or the shorter REPLACE INTO which does exactly the same. And in that
case it can be done in one query, like:
REPLACE INTO tabel (fields...)
VALUES
(val1.1,val1.2,val1.3,val1.4),
(val2.1,val2.2,val2.3,val2.4),
etc....
People should use unique identifiers more...
--
Rik Wasmus
Navigation:
[Reply to this message]
|