title: Can I temporarily disable cascading deletes in Oracle?
body: <p>Every so often I have to remove a user from our database.  Users are stored in a table called <code>TPM_USER</code>.  The problem is, there's a bunch of tables that have a foreign key constraint on <code>TPM_USER.USERID</code>.  To make matters worse, these constraints are using <code>ON CASCADE DELETE</code>.  The other day, I deleted a user that I thought was not in use by anything (it was a duplicate user mistakenly created a few hours before), but it wiped out a bunch of important data without any warning.</p>
  
  <p>Personally, I hate cascading deletes.  I think they're dangerous and should only be used if the two entities are indeed mutually dependent.  I'd love to remove them all, but this schema is rather complicated and it would probably be too big of a change to bite off at this time.</p>
  
  <p><strong>My question:</strong> Before running a <code>DELETE</code> statement on <code>TPM_USER</code>, can I have Oracle tell me exactly what will be deleted as a result?  Or, can I temporarily disable any cascading and get an error if any foreign keys are violated instead?</p>
  
  <p>Thanks!</p>