Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 10 sur 10
  1. #1
    Invité de passage
    Inscrit en
    juin 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : juin 2008
    Messages : 10
    Points : 2
    Points
    2

    Par défaut Cherche désespérement un champ dans une table

    bonjour à tous,

    j'ai une base postgres avec environ 60 tables.
    Je recherche la table dans laquelle j'ai un champ précis.
    Existe-t-il une commande sql du genre 'SELECT mon_champ from *' qui pourrait faire cela?
    Est-ce possible de faire une recherche de ce type et d'avoir le nom de la table en sortie?

    Merci

  2. #2
    Membre Expert Avatar de Yanika_bzh
    Homme Profil pro Yannick
    Responsable Applicatif et R&D
    Inscrit en
    février 2006
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Nom : Homme Yannick
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Responsable Applicatif et R&D
    Secteur : Finance

    Informations forums :
    Inscription : février 2006
    Messages : 1 144
    Points : 1 754
    Points
    1 754

    Par défaut

    Regardez les tables system

  3. #3
    Membre extrêmement actif Avatar de fally
    Homme Profil pro
    Développeur .Net / BI
    Inscrit en
    novembre 2007
    Messages
    966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur .Net / BI

    Informations forums :
    Inscription : novembre 2007
    Messages : 966
    Points : 1 141
    Points
    1 141

    Par défaut

    Salut,
    je ne crois pas que ce soit possible, puisqu'un même nom de champ peut se triouver dans plusieurs tables....

  4. #4
    Invité de passage
    Inscrit en
    juin 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : juin 2008
    Messages : 10
    Points : 2
    Points
    2

    Par défaut Tables sytem

    OK j'ai affiché mes tables system, mais je ne vois pas comment cela m'aide à trouver le champ...

  5. #5
    Membre Expert Avatar de Yanika_bzh
    Homme Profil pro Yannick
    Responsable Applicatif et R&D
    Inscrit en
    février 2006
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Nom : Homme Yannick
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Responsable Applicatif et R&D
    Secteur : Finance

    Informations forums :
    Inscription : février 2006
    Messages : 1 144
    Points : 1 754
    Points
    1 754

    Par défaut

    Citation Envoyé par fally Voir le message
    Salut,
    je ne crois pas que ce soit possible, puisqu'un même nom de champ peut se triouver dans plusieurs tables....
    Les relations 1-N existent en SGBD

  6. #6
    Expert Confirmé Avatar de pacmann
    Homme Profil pro Pacman Pacman
    Consulté Oracle
    Inscrit en
    juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Nom : Homme Pacman Pacman
    Âge : 33
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : juin 2004
    Messages : 1 626
    Points : 2 941
    Points
    2 941

    Par défaut

    Salut !

    Tous les SGBD sont sensés avoir un catalogue qui répertorie tous les objets de la BD. Le nom des tables "systèmes" et l'organisation dépend du SGBD.
    Mais typiquement, tu as des tables qui s'appellent (par exemple) :
    - SYSTABLES (TABLE_NAME, ...) : la table qui répertorie toutes les tables
    - SYSCOLUMNS (TABLE_NAME, COLUMN_NAME, ...) : la table qui répertorie toutes les colonnes de toutes les tables.

    Tu es sous quel SGBD ?

    (c'est ma photo)
    Paku, Paku !
    Pour les jeunes incultes : non, je ne suis pas un pokémon...

    Le pacblog : http://pacmann.over-blog.com/

  7. #7
    Membre extrêmement actif Avatar de fally
    Homme Profil pro
    Développeur .Net / BI
    Inscrit en
    novembre 2007
    Messages
    966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur .Net / BI

    Informations forums :
    Inscription : novembre 2007
    Messages : 966
    Points : 1 141
    Points
    1 141

    Par défaut

    Citation Envoyé par Yanika_bzh Voir le message
    Les relations 1-N existent en SGBD
    Oui mais je vois pas le rapport stp

  8. #8
    Invité de passage
    Inscrit en
    août 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : août 2008
    Messages : 6
    Points : 2
    Points
    2

    Par défaut Sous oracle ...

    Salut,
    Je ne connais pas très bien postgres, mais pour ceux que ca interesse voici comment faire sous Oracle :

    -- récupérer l'object ID correspondant à une table :
    select object_id from all_objects where object_name = '<nom de la table>' and object_type = 'TABLE'

    -- récupérer une colonne de la table :
    select * from sys.col$ where obj# = <object ID récupéré précédemment> and name = '<Nom colonne>'

    A partir de ca, on peu récupérer tous les object ID des tables qui contiennent un champ d'un nom donné, et ainsi voir toutes ces tables. voila.

    Comme le dit pacmann, il doit très probablement exister des tables système dans ta base de données qui référence les objets qu'elle contient, y compris les tables et les colonnes.
    Donc je te conseille de chercher sur la doc des tables systèmes si de telles tables existent

    Bon courage

  9. #9
    Membre confirmé
    Homme Profil pro
    Inscrit en
    janvier 2006
    Messages
    240
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations forums :
    Inscription : janvier 2006
    Messages : 240
    Points : 256
    Points
    256

    Par défaut

    bonsoir,

    Code :
    SELECT relname FROM pg_class t  JOIN pg_attribute c ON t.oid=c.attrelid WHERE attname='nom_colonne'

  10. #10
    Invité de passage
    Inscrit en
    juin 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : juin 2008
    Messages : 10
    Points : 2
    Points
    2

    Par défaut Merci

    Merci Xavier-Pierre,
    c'est la commande idéale pour cette recherche.

+ Répondre à la discussion
Cette discussion est résolue.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •