Jay I've used a trigger to do this with good success. You'll need one trigger per table to cause the delete to cascade through the tree. Or if you know that you will always delete from the top level tree"parent" then just one trigger would probably suffice. Ken
Jay Sprenkle <[EMAIL PROTECTED]> wrote: I'm deleting a tree of data stored in sqlite and was looking for the most efficient way to do it. I thought the best solution was to delete the row and then delete all the orphaned rows the referenced it in a loop delete from category where id = 5; To delete the orphaned rows I repeat one of the following until nothing more is deleted. Which of these two forms would run faster? delete from category where ParentId not in ( select distinct id from category ); or delete from category A left join category B on b.id = a.parent.id where b.id is null; Thanks -- -- The PixAddixImage Collector suite: http://groups-beta.google.com/group/pixaddix SqliteImporter and SqliteReplicator: Command line utilities for Sqlite http://www.reddawn.net/~jsprenkl/Sqlite Cthulhu Bucks! http://www.cthulhubucks.com ----------------------------------------------------------------------------- To unsubscribe, send email to [EMAIL PROTECTED] -----------------------------------------------------------------------------