|
|
| |
 |
|
A
Generic Cascade Update Procedure
Oracle Tips by Mike Ault |
Enforcing a
Cascade Update
What would be needed to enforce a cascade
update? One method would be to utilize data dictionary tables and
views to backtrack foreign key relations and then apply updates
along this path. However, this may be a lengthy process and can be a
performance problem. A simpler method would be to implement a table
based cascade update. The table would contain the information a
procedure would need to update all tables that are dependent upon a
main or master table. Therefore, the table would have to contain the
master table name, the dependent table(s) and in case we can't
duplicate the exact column name across all of the dependent tables,
the column to update. The table DDL script in figure 1 meets these
requirements. If required, a fourth column indicating an update
order could be added and the cursor in the UPDATE_TABLES procedure
detailed later altered to do an ordered retrieve of the information.
CREATE TABLE
update_tables
(
main_table VARCHAR2(30) NOT NULL,
table_name VARCHAR2(30) NOT NULL,
column_name VARCHAR2(30) NOT
NULL,
CONSTRAINT pk_update_tables
PRIMARY KEY (main_table,table_name,column_name)
USING INDEX
TABLESPACE tool_indexes)
STORAGE (INITIAL 100K NEXT 100K PCTINCREASE 0)
TABLESPACE tools
/
-- Column definitions are as follows:
SEE CODE DEPOT FOR FULL SCRIPTS
 |
For more information on this topic, I recommend Don
Burleson's latest book "Oracle
Tuning: The Definitive Reference".
You can buy it direct from the publisher for 50%-off and get
instant access to the code depot of Oracle tuning scripts: |
http://www.rampant-books.com/book_1002_oracle_tuning_definitive_reference_2nd_ed.htm
 |
Expert Remote DBA
BC is America's oldest and largest Remote DBA Oracle support
provider. Get real Remote DBA experts, call
BC Remote DBA today. |
 |
|
|
|
|