It appears that my requirements are to be able to do the following: BEGIN parent; insert into t values ('a'); BEGIN child; insert into t values ('b'); insert into t values ('c'); ROLLBACK child; // child aborts insert into t values ('d'); COMMIT parent;
As a result of this sequence, the table should have two new rows with values 'a' and ‘d', but not 'b' and ‘c’. I expanded Igor's example because a single transaction failure performs a rollback. ( Think that is true). Anyway, the above result is what is required and I cannot do this with the all or none concept. I see that other databases have the concept of SavePoint. I believe this will work for me but I am not sure. BEGIN insert into t values ('a'); savepoint = SetSavePoint(); insert into t values ('b'); insert into t values ('c'); RestoreSavePoint(savepoint); insert into t values ('d'); Commit As a result of this sequence, the table should have two new rows with values 'a' and ‘d', but not 'b' and ‘c’. The difference here is that there is only one Begin and Commit. There can be any number of savepoints. This seems to perform the same function. I have used SQLite and like the ease of use. Ray ----------------------------------------------------------------------------- To unsubscribe, send email to [EMAIL PROTECTED] -----------------------------------------------------------------------------