|
Posted by Chung Leong on 03/18/06 20:01
Jim Michaels wrote:
> Is it safe to do what is below? deleting from a resultset while you are
> processing it? I don't know how dynamic the SQL database is. I assume you
> get a cursor to live dataset. Even if it is a cursor as opposed to a table,
> will the cursor's integrity be ruined if the current record is deleted?
>
> $q2=mysql_query("SELECT * FROM table1 WHERE id1=5", $link);
> while ($row2=mysql_fetch_array($q2)) {
> //do some stuff with resultset
> mysql_query("DELETE FROM table1 WHERE id1=5 AND id2=$row2[id2]", $link);
> }
> mysql_free_result($q2);
With MySQL I believe it's safe, as the client buffers the whole result
set. It's more efficient though to save the ids into an array, then
delete all the applicable rows in a single operation with a "id2 IN (
.... )" condition.
Navigation:
[Reply to this message]
|