2010-09-15 21 views
5

Tengo una lista de tablas en una base de datos Netezza y quiero obtener el nombre de la clave principal para cada una de las tablas.consulta Netezza Sql

¿Alguien me puede dar la consulta.

+1

Me está costando encontrar cualquier documentación para Netezza, pero probablemente comenzaría por mirar las vistas del sistema. 'select * from _v_table;' por ejemplo –

+0

¡Gracias, Abe! Veré las vistas del sistema. –

Respuesta

5

Puede usar esta consulta.

SELECT * FROM _v_relation_keydata; 
+0

Gracias Winder!, Lo investigaré. –

2

No hay nada de primera clase en Netezza. Si desea ver las limitaciones null o no para su mesa es necesario, puede introducir los siguientes comandos desde la línea de comandos nzsql

\ d [YOURTABLENAME]

0

No tenemos primary key concepto en Netezza. Si le preocupan las columnas Not NULL siguientes, la consulta lo ayudará.

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

Los conceptos de la clave (primaria/extranjera) no están en Netezza. Pero podemos crear claves primarias en Netezza y esto se crea para sincronizar el modelo con las herramientas externas de informes de datos como Informatica/Microstrategy.

Puede consultar la vista del 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

Las respuestas de solo código no son muy útiles. –

+1

Verdadero en general, ¡pero ciertamente fue para mí esta vez! :) – herdingofthecats