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

PostgreSQL Discussion :

[SQL] Catalogues systemes


Sujet :

PostgreSQL

  1. #1
    Membre chevronné Avatar de deY!
    Inscrit en
    Avril 2006
    Messages
    403
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2006
    Messages : 403
    Par défaut [SQL] Catalogues systemes
    Bonjour,

    Je souhaiterais récuperer la liste des champs d'une table à l'aide d'une requête.
    Je me retrouve avec ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT attname, typname, attnotnull
    FROM pg_attribute pa
    LEFT JOIN pg_type pt ON pt.oid = pa.atttypid
    LEFT JOIN pg_class pc ON pc.oid = pa.attrelid
    WHERE pc.relname = 'branches'
    AND pa.attnum > 0
    Fonctionne nickel, cependant, il me manque une chose, et j'ai beau chercher dans les différent catalogues proposés, je ne trouve pas ce qui me convient.
    Je voudrais savoir si le champ est une clé primaire de la table, pour l'exemple il s'agit de la table branches, mais bien entendu dans mon code, c'est une variable.

    Bref, je veux la liste des champs d'une table.
    Nom Type NotNul et Pk

    apparement pg_constraint serait la voie, mais je ne vois pas comment le lier avec pg_attribute, puisque le champ pg_constraint.conkey est de type int2[] et que pg_attribute.attnum est de type int2.

    Si je fait une joiture sur la table cela ne convient, je veux ciblé le resultat sur le champ.

    Merci d'avance.

  2. #2
    Membre chevronné

    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 338
    Par défaut
    Bonjour

    pour recuperer les champs et les contraintes de tables il faut utiliser le schema information_schema et taper dans les vues tables et tables_constraints

  3. #3
    Membre chevronné Avatar de deY!
    Inscrit en
    Avril 2006
    Messages
    403
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2006
    Messages : 403
    Par défaut
    Oui mais non...

    Ce que je veux c'est une liste de champs... Et pour chaque enregistrement qu'il soit indiqué s'il s'agit d'une clé primaire ou non.
    Je veux lié ma liste de contraintes avec ma liste de colonnes.

  4. #4
    Membre chevronné Avatar de deY!
    Inscrit en
    Avril 2006
    Messages
    403
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2006
    Messages : 403
    Par défaut
    Aprés risque de pendaison en fibre optique voilà ce que j'ai pondu... et qui fonctionne...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    SELECT c.column_name, c.data_type, c.is_nullable, CAST('t' AS boolean) AS is_pk
    FROM information_schema.columns c
    LEFT JOIN information_schema.constraint_column_usage cc ON cc.column_name = c.column_name
    WHERE c.table_name = 'services'
    AND cc.constraint_name = 'pk_'||c.table_name
    UNION
    SELECT c.column_name, c.data_type, c.is_nullable, CAST('f' AS boolean) AS is_pk
    FROM information_schema.columns c
    WHERE c.table_name = 'services'
    AND c.column_name NOT IN (SELECT c.column_name
    			FROM information_schema.constraint_column_usage c
    			WHERE c.table_name = 'services'
    			AND c.constraint_name = 'pk_'||c.table_name)
    YaHa... Si quelqu'un trouve plus simple... Je suis preneur aussi...

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

Discussions similaires

  1. SQL Oracle - 'System.InvalidCastException'
    Par Phixx dans le forum C#
    Réponses: 2
    Dernier message: 18/09/2014, 11h58
  2. [MySQL] execution import fichier.sql avec System
    Par yoann92 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 06/02/2013, 09h58
  3. [MySQL] Script PHP et SQL : Catalogue de produit
    Par Fabdu57100 dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 29/09/2012, 19h28
  4. Requête SQL - Catalogue de produits
    Par isa28 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 03/02/2009, 20h52
  5. requete SQL affichant System.DataViewManagerListItemTypeDescriptor dans le listview
    Par Yogy dans le forum Windows Presentation Foundation
    Réponses: 4
    Dernier message: 25/02/2008, 12h05

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