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 :

Sélectionner toutes les clés primaires


Sujet :

SQL Firebird

  1. #1
    Membre confirmé Avatar de Issam
    Inscrit en
    Mars 2002
    Messages
    578
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Mars 2002
    Messages : 578
    Points : 604
    Points
    604
    Par défaut Sélectionner toutes les clés primaires
    Bonjour,

    [FB 2.5]
    est t'il possible de sélectionner chaque colonne clé primaire pour chaque table et d'y ajouter le commentaire #PK_GEN# via les tables système par ex ?.
    c'est pour faire fonctionner FB correctement avec entity framework

    merci et bonne journée

  2. #2
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 784
    Points : 5 915
    Points
    5 915
    Par défaut
    Bonjour,
    Citation Envoyé par Issam Voir le message
    est t'il possible de sélectionner chaque colonne clé primaire pour chaque table et d'y ajouter le commentaire #PK_GEN# via les tables système par ex ?.
    Qu'entendez vous par ajouter le commentaire ?
    1. renseigner la colonne description de chaque colonne "clé primaire" d'une table ?
    2. renommer la(les) colonne(s) "clé primaire"

    Dans le 2° cas, je ne saurai trop vous conseiller d'utiliser les commandes SQL DDL de Firebird (retirer les contraintes, renommer les colonnes, remettre les contraintes, etc). Il est extrêmement dangereux de modifier certains contenus des tables systèmes par un autre moyen, dont le nom des colonnes.
    Dans le 1° cas, on peut retrouver la liste des colonnes "clé primaire" des tables comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    /* Clés primaires des tables utilisateurs */
    SELECT
       r.RDB$RELATION_NAME, s.RDB$FIELD_NAME
    FROM RDB$RELATIONS r
    INNER JOIN RDB$RELATION_CONSTRAINTS rc ON rc.RDB$RELATION_NAME = r.RDB$RELATION_NAME
    INNER JOIN RDB$INDEX_SEGMENTS s ON s.RDB$INDEX_NAME = rc.RDB$INDEX_NAME
    WHERE r.RDB$VIEW_BLR IS NULL 
    AND (r.RDB$SYSTEM_FLAG IS NULL OR r.RDB$SYSTEM_FLAG = 0)
    AND rc.rdb$constraint_type = 'PRIMARY KEY'
    ORDER BY r.RDB$RELATION_NAME, s.RDB$FIELD_NAME
    Pour mettre à jour la colonne description à partir des informations obtenues précédemment :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    UPDATE RDB$RELATION_FIELDS 
    SET RDB$DESCRIPTION = '#PK_GEN#'
    WHERE RDB$RELATION_NAME = :RelationName
    AND RDB$FIELD_NAME = :FieldName
    Philippe.

  3. #3
    Membre confirmé Avatar de Issam
    Inscrit en
    Mars 2002
    Messages
    578
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Mars 2002
    Messages : 578
    Points : 604
    Points
    604
    Par défaut
    supposons que j'ai 3 tables dans ma base:
    Clients, Fournisseurs, Produits qui ont respectivement comme clés primaires id_client, id_fournisseur, Id_produit

    je voudrais ajouter la description #PK_GEN# pour les 3 colonnes clés primaires id_client, id_fournisseur, Id_produit

    Merci

  4. #4
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    Philippe vous a donné tous les éléments sachant que la première requête vous donne les noms de table et nom de champs des clés primaires et la seconde la méthode de mise à jour . A vous d'en faire soit une procédure soit d'utiliser un EXECUTE BLOCK pour mettre tout ça en fonction


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    SET TERM #;
    EXECUTE BLOCK
    AS 
    DECLARE VARIABLE NOMTABLE CHAR(31);
    DECLARE VARIABLE NOMCHAMP CHAR(31);
    BEGIN
    FOR SELECT  r.RDB$RELATION_NAME, s.RDB$FIELD_NAME
          FROM RDB$RELATIONS r
          INNER JOIN RDB$RELATION_CONSTRAINTS rc ON rc.RDB$RELATION_NAME = r.RDB$RELATION_NAME
          INNER JOIN RDB$INDEX_SEGMENTS s ON s.RDB$INDEX_NAME = rc.RDB$INDEX_NAME
          WHERE r.RDB$VIEW_BLR IS NULL 
          AND (r.RDB$SYSTEM_FLAG IS NULL OR r.RDB$SYSTEM_FLAG = 0)
          AND rc.rdb$constraint_type = 'PRIMARY KEY'
          INTO :NOMTABLE,:NOMCHAMP
    DO 
        UPDATE RDB$RELATION_FIELDS 
        SET RDB$DESCRIPTION = '#PK_GEN#'
        WHERE RDB$RELATION_NAME = :NOMTABLE
        AND RDB$FIELD_NAME = :NOMCHAMP;
    END#
    SET TERM ; #
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  5. #5
    Membre confirmé Avatar de Issam
    Inscrit en
    Mars 2002
    Messages
    578
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Mars 2002
    Messages : 578
    Points : 604
    Points
    604
    Par défaut
    J'avoue que j'avais lu la réponse de Philippe un peu en diagonale , il était 3h du matin .


    En tout les cas vraiment Merci beaucoup a tous les deux

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

Discussions similaires

  1. Activer toutes les clés primaires de l'utilisateur connecté
    Par SheikYerbouti dans le forum Contribuez
    Réponses: 0
    Dernier message: 30/12/2011, 15h07
  2. Réponses: 4
    Dernier message: 03/02/2009, 11h50
  3. [EJB2.1 Entity] [CMP] [xdoclet] Problème avec les clés primaires
    Par shingo dans le forum Java EE
    Réponses: 1
    Dernier message: 10/02/2006, 16h41
  4. Lister toutes les clés étrangères de toutes le tables
    Par Samish dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 30/08/2005, 10h15
  5. [C#] Probleme sur les clés primaires composites
    Par stardeus dans le forum Windows Forms
    Réponses: 7
    Dernier message: 12/02/2005, 23h28

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