Dba related child tables
Aller à la navigation
Aller à la recherche
| Fiche express | |
|---|---|
| Type | Script SQL*Plus de diagnostic |
| Domaine | Administration (contraintes, dépendances) |
| Voir aussi | Dba table info · Dba tables all |
Dba related child tables liste toutes les tables « enfants » liées à une table « parent » donnée par une contrainte de clé étrangère. Demande le propriétaire et le nom de la table parent, puis rapproche les contraintes PRIMARY KEY/UNIQUE de cette table avec les contraintes REFERENTIAL (clés étrangères) qui pointent vers elles. Utile avant une suppression ou une purge de données, pour repérer les tables impactées par les contraintes d'intégrité référentielle.
Script
-- Liste les tables enfants (liées par clé étrangère) d'une table parent donnée.
SET ECHO OFF
SET FEEDBACK 6
SET HEADING ON
SET LINESIZE 180
SET PAGESIZE 50000
SET TRIMSPOOL ON
SET VERIFY OFF
CLEAR COLUMNS
CLEAR BREAKS
CLEAR COMPUTES
PROMPT
PROMPT +------------------------------------------------------------------------+
PROMPT | All child tables related to a parent table name |
PROMPT +------------------------------------------------------------------------+
PROMPT
ACCEPT table_owner PROMPT 'Enter parent table owner : '
ACCEPT table_name PROMPT 'Enter parent table name : '
SELECT
p.table_name parent_table_name
, c.table_name child_table
FROM
dba_constraints p
, dba_constraints c
WHERE
(p.constraint_type = 'P' OR p.constraint_type = 'U')
AND
c.constraint_type = 'R'
AND
p.constraint_name = c.r_constraint_name
AND
p.owner = UPPER('&table_owner')
AND
p.table_name = UPPER('&table_name')
ORDER BY 2
/
Colonnes / sortie
- PARENT_TABLE_NAME — la table parent interrogée (répétée sur chaque ligne).
- CHILD_TABLE — chaque table enfant qui référence la table parent via une clé étrangère.
Le script ne remonte que le nom de la table enfant, pas le nom de la contrainte ni les colonnes concernées. Pour aller plus loin, il suffit d'ajouter c.constraint_name et de joindre dba_cons_columns sur c.owner/c.constraint_name pour obtenir le détail colonne par colonne.
Voir aussi
- Dba table info — détail complet d'une table donnée, y compris ses contraintes
- Dba tables all — inventaire de toutes les tables de la base