IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Firebird Discussion :

Selectionner les attributs d'une table et savoir si un attribut est une Clé primaire ou étrangére


Sujet :

SQL Firebird

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2019
    Messages : 13
    Points : 10
    Points
    10
    Par défaut Selectionner les attributs d'une table et savoir si un attribut est une Clé primaire ou étrangére
    Bonjour la communauté,

    Je me demandais, s'il existe une table du système Firebird, qui contiendrait les informations suivantes sur une table donnée:
    1. Liste des attributs
    2. Si cet attribut est une clé Primaire ou pas, et si elle est une clé étrangére le nom de table de référence


    Et quelle serait la requête SQL adapté pour faire cette sélection

    Merci pour l'aide.

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 183
    Points : 41 383
    Points
    41 383
    Billets dans le blog
    63
    Par défaut
    Bonsoir,

    je ne comprends pas trop le mot attribut, je pense que vous voulez parler de colonnes c'est la table RDB$RELATION_FIELDS qu'il faut interroger
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from rdb$relation_fields where rdb$relation_name='VotreTable';
    Pour ce qui est des contraintes de clés voir ce post et celui-ci

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2019
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    Merci beaucoup pour votre aide Sergio,

    Oui, je voulais parler de colonnes en disant attributs

    Nc'est tout à fait vrai que la table RDB$RELATION_FIELDS, contient la liste de relations dans la base de données, Néanmoins la vue que j'aimerai avoir moi personellement, est composé de colonnes

    1. Nom_Table
    2. PK
    3. Is_referenced_In_Table
    4. FK
    5. Reffers_to_column
    6. In_Table


    C'est comme si on est sur FlameRobin Sur une table Click droit->> "Show propieties" -> "Constraints".

    Je nie pas qu'il peut y avoir des PK, qui ont référeence dans d'autre table, j'espére que je m'exprime bien avec le jargons Base de donées, comme je suis novice la dessus.

    J'ai chercher sur le net, je vois qu'il y a des gens qui font des scripts pour avoir des informations pareilles, mais je suis pas tombé sur un script qui me génére la vue que j'en ai vraiment besoin

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 183
    Points : 41 383
    Points
    41 383
    Billets dans le blog
    63
    Par défaut
    Bonjour
    Quelque chose comme ça devrait s'en rapprocher
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    WITH S AS (SELECT g.RDB$INDEX_NAME,TRIM(RDB$RELATION_NAME) TBL,LIST(TRIM(g.RDB$FIELD_NAME)) FIELDS 
                      FROM RDB$INDEX_SEGMENTS g 
                      JOIN RDB$INDICES I ON I.RDB$INDEX_NAME=g.RDB$INDEX_NAME
                 GROUP BY 1,2)
     
    SELECT a.RDB$RELATION_NAME, a.RDB$UNIQUE_FLAG, S.FIELDS, 
      CASE COALESCE(a.RDB$FOREIGN_KEY,'P')
        WHEN 'P' THEN 'Primary'
        ELSE (SELECT 'FK ON TABLE '||s.TBL||' '||FIELDS FROM S WHERE S.RDB$INDEX_NAME=a.RDB$FOREIGN_KEY)
      END   
    FROM RDB$INDICES a JOIN  s ON a.RDB$INDEX_NAME=S.RDB$INDEX_NAME
    Where RDB$SYSTEM_FLAG=0
    ORDER BY a.RDB$RELATION_NAME,a.RDB$INDEX_ID
    je n'ai pas encore découvert comment distinguer une clé primaire d'un index dans cette séquence

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2019
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    ça s'approche bien à ce que je voulais, merci beaucoup, ça me serait utile certes.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/08/2014, 09h11
  2. Réponses: 7
    Dernier message: 06/06/2014, 10h20
  3. Réponses: 4
    Dernier message: 12/07/2012, 14h39
  4. selectionner les lignes d'une gridview
    Par phtpdf dans le forum ASP.NET
    Réponses: 3
    Dernier message: 19/03/2008, 14h21
  5. Selectionner les résultats d'une requête sql
    Par Seb981 dans le forum Langage SQL
    Réponses: 9
    Dernier message: 11/09/2007, 13h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo