A voir également:
- [ORACLE]Reque te sql
- Logiciel sql - Télécharger - Bases de données
- Sql lister les tables ✓ - Forum Programmation
- Sql (+) - Forum Programmation
- Requete sql pix - Forum PHP
- Additions et multiplication dans des requêtes SQL ✓ - Forum MySQL
10 réponses
Salut,
Essaie ceci:
++
Essaie ceci:
SELECT a1.owner, a1.constraint_name, a1.constraint_type,
a1.table_name AS original_table, a1.r_owner, a1.r_constraint_name,
a2.table_name AS ref_to_table
FROM all_constraints a1, all_constraints a2
WHERE a1.r_constraint_name = a2.constraint_name
AND a1.constraint_type = 'R'
AND a1.table_name = 'MA_TABLE';
++
Merci pour cette requete, mais ca ne marche pas : la table qui contient la clé FK n'apparais pas dans la colonne table_name ???
Maure,
Maure,
HEu... J'ai écrit la requête avec une base 10g et ça marche. Est-ce que tu as des lignes retournées (avec le champ ref_to_table à vide) ou rien du tout?
Autant pour moi, non effectivement ta requete fonctionne très bien et elle réponds aux besoins ...
Un grand merci à toi ...
Maure
Un grand merci à toi ...
Maure
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Je reviens de nouveau vers toi pour une nouvelle question oracle ...,
J'ai une table qui contient des colonnes je lis ces colonnes via la vie all_tab_columns et je recupère des infos sur chaque colonne (nullable, type, ...) mais il me reste iune info que je n'ai pas pu trouvé : savoir si la colonne est une FK?
D'avance merci.
J'ai une table qui contient des colonnes je lis ces colonnes via la vie all_tab_columns et je recupère des infos sur chaque colonne (nullable, type, ...) mais il me reste iune info que je n'ai pas pu trouvé : savoir si la colonne est une FK?
D'avance merci.
Hello,
Je ferais qqchose comme ceci:
++
Je ferais qqchose comme ceci:
SELECT atc.*, DECODE (c.constraint_type, 'R', 'y', 'n') AS is_fk FROM all_tab_columns atc, all_cons_columns cc, all_constraints c WHERE atc.owner = cc.owner AND atc.table_name = cc.table_name AND atc.column_name = cc.column_name AND cc.constraint_name = c.constraint_name==> la colonne is_fk te donne l'info souhaitée.
++
Franchement je n'ai pas réussie à te mettre une colle ... j'essaierai al prochaine fois
Grand, grand merciiiiiiiiiiiiiii, ça réponds bien à ce que je chercher ...
Maure
Grand, grand merciiiiiiiiiiiiiii, ça réponds bien à ce que je chercher ...
Maure
Bonjour,
une fois de plus je reviens vers toi pour une nouvelle question :
voila je fais :
Select ma_table.* from ma_table
qu'est ce qu'il peut me garantir que la 1ere colonne à traiter soit toujours la colonne de la clé primaires ?
Dans tous les tests que j'ai pu passer la 1ere colonne correspond toujours à la PK mais je ne sais pas si c'est une règle ou c'est complètement le hasard ?
D'avance Merci ...
une fois de plus je reviens vers toi pour une nouvelle question :
voila je fais :
Select ma_table.* from ma_table
qu'est ce qu'il peut me garantir que la 1ere colonne à traiter soit toujours la colonne de la clé primaires ?
Dans tous les tests que j'ai pu passer la 1ere colonne correspond toujours à la PK mais je ne sais pas si c'est une règle ou c'est complètement le hasard ?
D'avance Merci ...
Re,
Ce n'est pas une règle.... L'ordre des colonnes retournées par un select * correspond à la définition de la table (l'ordre des lignes dans l'instruction create table). La colonne PK est habituellement en 1ère position, mais ceci n'est pas une obligation.
Pour savoir cet ordre:
++
Ce n'est pas une règle.... L'ordre des colonnes retournées par un select * correspond à la définition de la table (l'ordre des lignes dans l'instruction create table). La colonne PK est habituellement en 1ère position, mais ceci n'est pas une obligation.
Pour savoir cet ordre:
desc ma_tablesous sqlplus (ou dans TOAD).
++