2010-09-15 38 views
5

Tôi có danh sách các bảng trong cơ sở dữ liệu Netezza và tôi muốn lấy tên của khóa chính cho mỗi bảng.Truy vấn Setezza Sql

Có ai có thể cung cấp cho tôi truy vấn không.

+1

Tôi đang có một thời gian tìm tài liệu cho Netezza, nhưng tôi có thể bắt đầu bằng cách xem các lượt xem hệ thống. 'select * from _v_table;' ví dụ –

+0

Cảm ơn Abe! Tôi sẽ xem xét các khung nhìn hệ thống. –

Trả lời

5

Bạn có thể sử dụng truy vấn này.

SELECT * FROM _v_relation_keydata; 
+0

Cảm ơn Winder !, Tôi sẽ xem xét nó. –

2

Không có loại khóa chính nào trong Netezza. Nếu bạn muốn nhìn vào những hạn chế NULL NULL hoặc KHÔNG cho bảng yêu cầu của bạn, bạn có thể nhập vào lệnh dưới đây từ dòng lệnh nzsql bạn

\ d [YOURTABLENAME]

0

Chúng tôi không có khái niệm primary key trong Netezza. Nếu bạn lo ngại về các số Not NULL cột sau truy vấn sẽ giúp bạn.

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

Khái niệm chính (chủ yếu/nước ngoài) không có trong Netezza. Nhưng chúng ta có thể tạo các khóa chính trong Netezza và điều này được tạo ra để đồng bộ hóa mô hình với các công cụ báo cáo dữ liệu bên ngoài như Informatica/Microstrategy.

Bạn có thể xem trong chế độ xem hệ thống _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

Câu trả lời chỉ có mã không hữu ích lắm. –

+1

Đúng nói chung, nhưng nó chắc chắn là dành cho tôi lần này! :) – herdingofthecats