Y a-t-il une requête qui fera cela?
J'ai trouvé quelques requêtes qui peuvent le faire pour une table, mais je n'ai pas pu le modifier pour que je puisse voir:
tablename | column | type
postgresql
schema
korda
la source
la source
Réponses:
Quelque chose comme ça:
la source
tc.constraint_type = 'PRIMARY KEY'
n'affichera que les clés primaires. Cependant, chaque clé primaire est soutenue par un index uniqueposition_in_unique_constraint
indique la position de la clé FOREIGN, elle est toujours nulle pour les clés primaires. La colonne correcte estordinal_position
. Testé dans PG 9.4.ordinal_position
devraient être utilisés. Leposition_in_unique_constraint
n'est pas nul uniquement dans l'utilisation des FK.C'est une réponse plus précise:
Vous avez manqué la
and kc.constraint_name = tc.constraint_name
partie, elle répertorie donc toutes les contraintes.la source
and kc.position_in_unique_constraint is not null
partie manquante . Et vous êtes fortement encouragé à utiliser les jointures ANSI (alors que beaucoup considèrent que c'est une question de goût).Veuillez également considérer cela. Cela générera le script pour modifier toutes les tables.
la source
Je pense que pour obtenir la clé primaire et la clé étrangère devrait faire comme ça. kc.position_in_unique_constraint n'est pas nul, cette condition ne peut obtenir que des clés étrangères.
la source