2017-02-20 7 views
0

Wie Primärschlüssel, Fremdschlüssel und eindeutige Schlüssel zusammen mit ihren jeweiligen Spaltennamen eines bestimmten Schemas in dem Format abgerufen werden, das unten in postgresql 9.5 beschrieben wird? Ich bin Anfänger helfen bitte ...Wie alle Schlüssel zusammen mit ihren Spaltennamen und dem Tabellennamen eines bestimmten Schemas in postgresql 9.5 abgerufen werden?

Table_name|Primary_key_name|pk_column_name|foreign_key_name|fk_colum_name|unique_key_name|uk_column_name 
+0

Es sieht mehr als ein eindeutiger oder Fremdschlüssel, und eine Einschränkung wird nicht notwendigerweise mit einer einzelnen Spalte definiert. Den größten Teil dieser Informationen erhalten Sie in den Ansichten ['information_schema'] (https://www.postgresql.org/docs/current/static/information-schema.html), insbesondere' tables', 'table_constraints' und' constraint_column_usage'. –

+0

Ja, aber ich möchte alle Spalten anzeigen – Karthik

Antwort

0

Zur Grundtabelle Details

SELECT * 
FROM information_schema.columns 
WHERE table_name = 'yourTableName'; 

Um eine aus allen FORIEN KEY, PRIMARY KEY, UNIQUE KEY-Einschränkungen

SELECT tc.constraint_name, 
tc.constraint_type, 
tc.table_name, 
kcu.column_name, 
tc.is_deferrable, 
tc.initially_deferred, 
rc.match_option AS match_type, 

rc.update_rule AS on_update, 
rc.delete_rule AS on_delete, 
ccu.table_name AS references_table, 
ccu.column_name AS references_field 
FROM information_schema.table_constraints tc 

LEFT JOIN information_schema.key_column_usage kcu 
ON tc.constraint_catalog = kcu.constraint_catalog 
AND tc.constraint_schema = kcu.constraint_schema 
AND tc.constraint_name = kcu.constraint_name 

LEFT JOIN information_schema.referential_constraints rc 
ON tc.constraint_catalog = rc.constraint_catalog 
AND tc.constraint_schema = rc.constraint_schema 
AND tc.constraint_name = rc.constraint_name 

LEFT JOIN information_schema.constraint_column_usage ccu 
ON rc.unique_constraint_catalog = ccu.constraint_catalog 
AND rc.unique_constraint_schema = ccu.constraint_schema 
AND rc.unique_constraint_name = ccu.constraint_name 

WHERE lower(tc.constraint_type) in ('foreign key') 
+0

Aktualisiert, Bitte überprüfen Sie die neue –

Verwandte Themen