Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 2 sur 2
  1. #1
    Membre chevronné
    Inscrit en
    mars 2002
    Messages
    720
    Détails du profil
    Informations forums :
    Inscription : mars 2002
    Messages : 720
    Points : 608
    Points
    608

    Par défaut METADATA PRIMARY KEY

    Bonjour,

    quelle est la requête magique pour avoir la clé primaire d'une table ?

    j'utilise cela :

    Code :
    1
    2
    3
    4
    SELECT * FROM RDB$INDICES
    WHERE RDB$RELATION_NAME = 'TABLE_NAME'
    AND RDB$UNIQUE_FLAG=1
    AND RDB$FOREIGN_KEY IS NULL
    Mais il y a aussi les clés uniques qui sont renvoyés

  2. #2
    Modérateur
    Avatar de Cl@udius
    Homme Profil pro Claude Renouleaud
    Développeur informatique
    Inscrit en
    février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Nom : Homme Claude Renouleaud
    Âge : 51
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : février 2006
    Messages : 4 878
    Points : 8 960
    Points
    8 960

    Par défaut

    Salut

    Effectivement le critère RDB$UNIQUE_FLAG=1 n'est pas suffisant pour isoler la clé primaire.

    Comme ceci, comprenant le nom de la contrainte, le nom de la colonne ainsi que l'index associé:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT
      RC.RDB$CONSTRAINT_NAME,
      IDX.RDB$FIELD_NAME,
      RC.RDB$INDEX_NAME
    FROM
      RDB$RELATION_CONSTRAINTS RC
      JOIN RDB$INDEX_SEGMENTS IDX ON (IDX.RDB$INDEX_NAME = RC.RDB$INDEX_NAME)
    WHERE
      RC.RDB$CONSTRAINT_TYPE ='PRIMARY KEY' AND
      RC.RDB$RELATION_NAME = 'TABLE_NAME'
    @+ Claudius
    A la question technique que par MP/MV tu formuleras, la réponse aux oubliettes finira.

+ 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
  •