Question: If some idiot decides to circumvent Oracle's referential integrity and re-implement it by using triggers (insert, update, delete) that checks the foreign (parent/child) key fields in other tables like this,
declare numrows INTEGER; begin -- ApplicationForm is used if the state and other criteria match that in -- ApplicationFormCriteria ON PARENT DELETE RESTRICT select count(*) into numrows from ApplicationFormCriteria where ApplicationFormCriteria.applicationFormId = :old.applicationFormId; if (numrows > 0) then raise_application_error( -20343, 'Database Integrity Violation - Cannot DELETE row in Table ''ApplicationForm'' because referencing row exists in table ''ApplicationFormCriteria'' for Primary Key (applicationFormId)=' || :old.applicationFormId ); end if; end; would it cause context switching between the SQL & PL/SQL engines? Yes, some genius did this in one of our databases. Two hundred third/fourth normal form tables enforced by 800 triggers... I have him registered to be stoned in public. -- Please see the official ORACLE-L FAQ: http://www.orafaq.net -- Author: INET: [EMAIL PROTECTED] Fat City Network Services -- 858-538-5051 http://www.fatcity.com San Diego, California -- Mailing list and web hosting services --------------------------------------------------------------------- To REMOVE yourself from this mailing list, send an E-Mail message to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in the message BODY, include a line containing: UNSUB ORACLE-L (or the name of mailing list you want to be removed from). You may also send the HELP command for other information (like subscribing).