Skip site navigation (1) Skip section navigation (2)

Foreign Keys einer Tabelle herausfinden

From: Philipp Lawitschka <office(at)lawitschka(dot)eu>
To: postgres-liste <pgsql-de-allgemein(at)postgresql(dot)org>
Subject: Foreign Keys einer Tabelle herausfinden
Date: 2009-09-07 17:21:11
Message-ID: 4AA54107.1060406@lawitschka.eu (view raw or flat)
Thread:
Lists: pgsql-de-allgemein
Hallo Liste,

meine Anwendung muß zur Laufzeit ein Datenbankschema analysieren (eine 
Art DBIx::Class). Ich hab im Prinzip alles herausgefunden, nur komm ich 
irgendwie nicht an die Fremdschlüssel einer Tabelle ran. Hiermit bekomm 
ich viel zu viele Datensätze und weiß nicht mehr, nach was ich noch 
filtern soll:

SELECT c.conname, c.contype, c.conrelid, c.conkey, c.confkey,
	a.attname, a.attnum, a.atttypid, x.relname AS MyTable, z.relname 	AS 
ForeignTable, t.typname
FROM pg_constraint c
	INNER JOIN pg_class x ON c.conrelid = x.oid
	INNER JOIN pg_class z ON c.confrelid = z.oid
	INNER JOIN pg_attribute a ON c.conkey[1] = a.attnum
	INNER JOIN pg_type t ON a.atttypid = t.oid
WHERE c.contype = 'f'::char AND t.typname='int4';

Ich bin kein Profi in den Systemkatalogen. Weiß hier jemand, wie man das 
am besten angehen könnte?

Viele Grüße
Philipp Lawitschka

Responses

pgsql-de-allgemein by date

Next:From: Philipp LawitschkaDate: 2009-09-07 21:22:19
Subject: Re: Foreign Keys einer Tabelle herausfinden
Previous:From: Andreas 'ads' ScherbaumDate: 2009-09-01 08:19:46
Subject: == Wöchentlicher PostgreSQL Newsletter - 30. August 2009 ==

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group