Mam dużą bazę danych, z której muszę wyodrębnić wszystkie klucze podstawowe i klucze obce z każdej tabeli.
Mam pgAdmin III.
Czy istnieje sposób, aby to zrobić automatycznie i nie przeglądać każdego stołu ręcznie?
postgresql
foreign-key
primary-key
pgadmin
Nick Ginanto
źródło
źródło
WHERE contype IN ('f', 'p', 'u')
W oparciu o rozwiązanie Erwin:
Zwróci tabelę formularza:
źródło
Nie trzeba analizować
pg_get_constraintdef()
, wystarczy użyć kolumnpg_constraint
tabeli, aby uzyskać inne szczegóły ( dokumenty ).Tutaj
constraint_type
może być:Na podstawie odpowiedzi Erwina :
Wyniki są uporządkowane według
schema
itable
.Uwaga techniczna: zobacz to pytanie dotyczące
with ordinality
.źródło
Niedawno musiałem to zaimplementować w warstwie dostępu do danych, która buduje narzędzia CRUD w oparciu o schemat informacyjny.
źródło