Thread: Commiting after certain no of rows have been deleted

Commiting after certain no of rows have been deleted

From
Smita Mahadik
Date:
Hi,
 
         In my application I m deleteing large no of rows from table based on certain condition. This takes lot of time and if sometimes my application fails it starts all over again...since the coomit is done at the end of transactions. Is there a way i can do commit when certain no of rows have been deleted? For eg if i need to delete 2 million rows i should be able to commit after say 10,000 rows.
 
 
Regards
smita

Re: Commiting after certain no of rows have been deleted

From
Richard Huxton
Date:
Smita Mahadik wrote:
> Hi,
> 
> In my application I m deleteing large no of rows from table based on
> certain condition. This takes lot of time and if sometimes my
> application fails it starts all over again...since the coomit is done
> at the end of transactions. Is there a way i can do commit when
> certain no of rows have been deleted? For eg if i need to delete 2
> million rows i should be able to commit after say 10,000 rows.

No - the whole point of the transaction is it all works or none of it 
does. But, if you have a suitable ID/Name/timestamp/other varying column 
you can break it into smaller chunks:

DELETE FROM contacts WHERE surname LIKE 'A%';
DELETE FROM contacts WHERE surname LIKE 'B%';
...etc... don't forget a final "full" delete to catch anything you miss
DELETE FROM contacts;

Ideally you'll have something with an index on it.
--   Richard Huxton  Archonet Ltd