2010-09-15 13 views
5

Ho un elenco di tabelle in un database Netezza e voglio ottenere il nome della chiave primaria per ciascuna delle tabelle.Netezza query Sql

Qualcuno può fornirmi la richiesta.

+1

Sto avendo un sacco di tempo a trovare documentazione per Netezza, ma probabilmente inizierei guardando le viste di sistema. 'select * from _v_table;' ad esempio –

+0

Grazie Abe! Guarderò le visualizzazioni di sistema. –

risposta

5

È possibile utilizzare questa query.

SELECT * FROM _v_relation_keydata; 
+0

Grazie Winder!, Lo esaminerò. –

2

Non c'è nulla di fondamentale in Netezza. Se si vuole guardare ai vincoli NULL null o non necessario per la vostra tavola è possibile inserire i seguenti comandi da riga di comando nzsql

\ d [YOURTABLENAME]

0

Non abbiamo primary key concetto di Netezza. Se sei preoccupato per le colonne Not NULL, la query ti aiuterà.

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

I concetti chiave (primario/esterno) non sono presenti in Netezza. Ma possiamo creare chiavi primarie in Netezza e questo viene creato per sincronizzare il modello con gli strumenti di reporting dei dati esterni come Informatica/Microstrategy.

È possibile esaminare la vista di sistema _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

Le risposte solo in codice non sono molto utili. –

+1

Vero in generale, ma sicuramente è stato per me questa volta! :) – herdingofthecats