[Oracle] Récupérer des informations sur les clés étrangères

Récupérer des informations sur les clés étrangères [Oracle] - SQL/NoSQL - Programmation

Marsh Posté le 17-11-2010 à 16:27:31    

Bonjour à tous,
 
Je cherche à faire un petit script pour exporter uniquement certaines clés étrangères de ma base oracle (9i).
Je fouille dans les tables systèmes d'oracle pour récupérer une liste de ces clés.
 
J'accède sans pb ç la table user_constraints qui me donne une liste des contraintes, mais je n'arrive pas à déterminer sur quelle table pointent ces contraintes. J'imagine que cette info doit bien exister quelque part, mais je ne sais pas ou :/
 
Globalement, je sais dire qu'il y a une clé étrangère sur la table ZZZ mais je ne sais pas dire que cette clé étrangère pointe sur la colonne XXX de la table YYYY.
 
Merci pour votre aide.

Reply

Marsh Posté le 17-11-2010 à 16:27:31   

Reply

Marsh Posté le 18-11-2010 à 14:04:00    

regarde le champs R_CONSTRAINT_NAME

Reply

Marsh Posté le 18-11-2010 à 14:06:52    

Oui j'ai finalement trouvé, R_CONSTRAINT_NAME renvoit vers un index que l'on peut donc lier avec all_indexes et all_ind_columns.
 
Donc j'en déduit que dès qu'il y a une clé étrangère, oracle crée automatiquement un index.
 
Merci pour ton aide en tout cas !

Reply

Marsh Posté le 19-11-2010 à 16:23:55    

Attention, petite précision : Oracle ne crée pas automatiquement un index sur la FK !
L'index que tu vois dans la colonne R_CONSTRAINT_NAME est en fait le nom de la clef primaire ou unique de la table maître, sur laquelle s'appuie ta clef étrangère.
Tu peux retrouver plus d'infos sur les colonnes concernées dans ta table fille avec la vue user_cons_columns.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed