J'aimerais avoir toutes les clés étrangères dans un schéma, comme ça. Disons que j'ai des tables
et p> J'ai défini un FK sur les utilisateurs-adresse_id dans la colonne ID dans Adresses.
Comment devrais-je écrire une requête qui me retournerait les colonnes FK comme:
Utilisateurs, adresse_id, adresses, id? p> merci! p> utilisateurs (ID, nom d'utilisateur, passe, adresse_id) code> p>
adresses (ID, texte) < / Code> P>
3 Réponses :
Ils sont énumérés dans la vue Système edit forte> Les colonnes impliquées dans les contraintes sont répertoriées dans all_constraints code> p>
p>
all_cons_columns code> p>
Merci! Mais à partir de là, je ne peux pas obtenir la colonne référencée, juste la contrainte référencée ...
Merci, mais je ne reçois toujours pas la sortie souhaitée. Je vais éditer et poster ma requête
trouvé!
C'est ce que je cherchais, merci à tous de l'aide. p>
En ce qui concerne, j'ai ajouté une version améliorée de la réponse.
Utilisation de la solution @maephisto étudiera un petit bogue:
Si la clé principale des tables de source est une clé composite CODE>, puis exécutant la requête résultera
Dupliquer des enregistrements inutiles code>.
Considérez T1 et T2 Tables:
Tableau Master T1:
SELECT master_table.TABLE_NAME MASTER_TABLE_NAME,
master_table.column_name MASTER_KEY_COLUMN,
detail_table.TABLE_NAME DETAIL_TABLE_NAME,
detail_table.column_name DETAIL_COLUMN
FROM user_constraints constraint_info,
user_cons_columns detail_table,
user_cons_columns master_table
WHERE constraint_info.constraint_name = detail_table.constraint_name
AND constraint_info.r_constraint_name = master_table.constraint_name
AND detail_table.POSITION = master_table.POSITION
AND constraint_info.constraint_type = 'R'
AND constraint_info.OWNER = 'MY_SCHEMA'