This content has been marked as final. Show 4 replies
>1 person found this helpful
I can't see a good reason.
I can't either.
Isn't "ON DELETE CASCADE" simply an attribute ?
Is there any structural difference between a cascade constraint and a non-cascade ?
Not that I'm aware of.
There is a fundamental difference though in what would happen if users were performing DML on the table when you suddenly changed that attribute. Child records might get deleted when they should not.
Whether to cascade the deletes on a table is a pretty major architectural factor that is taken into account when you create the processes that manipulate the table data. Without the CASCADE option in effect you can (you shouldn't, but you can) write code or issue a query that attempts to delete a parent record and Oracle will protect you.
Before flashback and related technologies came along if you had accidentally deleted a parent and all of its children you would be up the proverbial creek without a paddle.
Now that those other technologies can provide some additional protection there probably isn't much need for restricting that and an ALTER option to modify it might be appropriate.
You can always suggest the option to Oracle for consideration.
Thank you rp0428, I was afraid I was missing something obvious here. You said I could suggest this to Oracle. How do I do that ?
Simply enter a service request on MOS. Search for How to request enhancement on MOS. You can see the enhancement request bug status values in http://docs.oracle.com/cd/E25290_01/doc.60/e25224/srhome.htm#BABBHEID1 person found this helpful