2010-09-15 13 views
5

Mam listę tabel w bazie danych Netezza i chcę uzyskać nazwę klucza podstawowego dla każdej z tabel.Zapytanie Nettza Sql

Czy ktoś może mi podać zapytanie.

+1

Mam piekło czasu znajdowanie jakiejkolwiek dokumentacji dla Netezza, ale prawdopodobnie zacznę od patrzenia na widoki systemu. 'wybierz * z _v_table;' na przykład –

+0

Dzięki Abe! Spojrzę na widoki systemu. –

Odpowiedz

5

Możesz użyć tego zapytania.

SELECT * FROM _v_relation_keydata; 
+0

Dzięki Winder!, Zagłębię się w to. –

2

W Netezza nie ma nic w rodzaju klucza podstawowego. Jeśli chcesz spojrzeć na NULL lub NOT NULL ograniczeń dla wymaganej tabeli można wprowadzić poniższe komendy z linii poleceń nzsql

\ d [YOURTABLENAME]

0

Nie mamy primary key koncepcję Netezza. Jeśli obawiasz się, że poniższe zapytanie pomoże Ci uzyskać następujące kolumny: Not NULL.

0

Kluczowe pojęcia (pierwotne/zagraniczne) nie ma w Netezza. Ale możemy stworzyć klucze podstawowe w Netezza, a to jest stworzone do synchronizacji modelu z zewnętrznymi narzędziami raportowania danych, takimi jak Informatica/Microstrategy.

Możesz zajrzeć do widoku systemowego _v_relation_keydata.

2
SELECT database 
     , schema 
     , constraintname 
     , relation as tablename 
     , conseq as seq 
     , attname as columnname, * 
FROM _v_relation_keydata 
where contype='p' 
and schema='ADMIN' 
order by relation, conseq 
+0

Odpowiedzi tylko na kod nie są zbyt użyteczne. –

+1

To prawda, ale na pewno tym razem było to dla mnie! :) – herdingofthecats