2010-09-15 6 views
5

Ich habe eine Liste von Tabellen in einer Netezza-Datenbank und ich möchte den Namen des Primärschlüssels für jede der Tabellen erhalten.Netezza Sql Abfrage

Kann mir jemand die Anfrage stellen.

+1

Ich habe eine Menge Zeit, um eine Dokumentation für Netezza zu finden, aber ich würde wahrscheinlich mit Blick auf die Systemansichten beginnen. 'Select * from _v_table;' zum Beispiel –

+0

Danke Abe! Ich werde die Systemansichten betrachten. –

Antwort

5

Sie können diese Abfrage verwenden.

SELECT * FROM _v_relation_keydata; 
+0

Danke Winder!, Ich werde es untersuchen. –

2

Es gibt nichts Art von Primärschlüssel Sache in Netezza. Wenn Sie an den NULL oder NOT NULL Einschränkungen für Ihre gewünschte Tabelle suchen möchten, können Sie die folgenden Befehle von Ihrer nzsql Befehlszeile

\ d [YOURTABLENAME]

0

Wir geben nicht primary key Konzept in Netezza haben. Wenn Sie besorgt sind über Not NULL Spalten folgende Abfrage wird Ihnen helfen.

select * from _v_relation_column where NAME='TABLE_NAME' and ATTNOTNULL='Y'; 
0

Die Schlüssel (primär/fremd) Konzepte gibt es in Netezza nicht. Aber wir können Primärschlüssel in Netezza erstellen, und dies wird erstellt, um das Modell mit den externen Datenberichterstattungstools wie Informatica/Microstrategy zu synchronisieren.

Sie können in die Systemansicht _v_relation_keydata schauen.

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

Code-only-Antworten sind nicht sehr nützlich. –

+1

Wahr im Allgemeinen, aber es war dieses Mal für mich! :) – herdingofthecats