Netezza 的信息架构 (INFORMATION_SCHEMA)

Posted

技术标签:

【中文标题】Netezza 的信息架构 (INFORMATION_SCHEMA)【英文标题】:Information Schema (INFORMATION_SCHEMA ) for Netezza 【发布时间】:2015-05-27 00:14:20 【问题描述】:

我长期以来一直在为 MS SQL 使用 INFORMATION_SCHEMA.COLUMNS,并且一直是我最好的朋友之一。我的公司正在将其平台更改为 Netezza。 Netezza 中是否有相关的东西,我可以通过查询来查询并找出 Netezza 中的列/表。

谢谢

【问题讨论】:

【参考方案1】:

您可以使用用户和系统视图通过 SQL 访问此信息,如下所示:

select * from _v_table where objtype = 'TABLE';
  OBJID  | TABLENAME | OWNER |     CREATEDATE      | OBJTYPE | OBJCLASS | DESCRIPTION | RELHASINDEX | RELKIND | RELCHECKS | RELTRIGGERS | RELHASRULES | RELUKEYS | RELFKEYS | RELREFS | RELHASPKEY | RELNATTS | RELDISTMETHOD | OBJDELIM | RELTUPLES | BASEOBJID | VISIBLEID | RELVERSION | RELORIGOID | DATABASE |  OBJDB  | SCHEMA | SCHEMAID
---------+-----------+-------+---------------------+---------+----------+-------------+-------------+---------+-----------+-------------+-------------+----------+----------+---------+------------+----------+---------------+----------+-----------+-----------+-----------+------------+------------+----------+---------+--------+----------
 1249610 | TABLE_A   | ADMIN | 2015-04-13 19:33:48 | TABLE   |     4905 |             | f           | r       |         0 |           0 | f           |        0 |        0 |       0 | f          |        2 |          6005 | f        |         0 |   1249610 |   1249610 |          0 |    1249610 | MY_TEST  | 1249609 | SCOTT  |  1249608
(1 row)



select * from _v_relation_column where name = 'TABLE_A';
      OBJID  |  NAME   | OWNER |     CREATEDATE      | TYPE  | DATABASE | ATTNUM | ATTNAME |  COLID  | DESCRIPTION |      FORMAT_TYPE      | ATTNOTNULL | ATTTYPID | ATTTYPMOD | ATTLEN | ATTDISPERSION | COLDEFAULT | ATTCOLLENG | ATTDELIM | ZMAPPED | OBJCLASS | RELRESTOREDOID | OBJDELIM | ATTVERSTATUS | ATTORIGOID | ATTRESTOREDOID |  OBJDB  | SCHEMA | SCHEMAID
    ---------+---------+-------+---------------------+-------+----------+--------+---------+---------+-------------+-----------------------+------------+----------+-----------+--------+---------------+------------+------------+----------+---------+----------+----------------+----------+--------------+------------+----------------+---------+--------+----------
     1249610 | TABLE_A | ADMIN | 2015-04-13 19:33:48 | TABLE | MY_TEST  |      1 | COL1    | 1596671 |             | BIGINT                | f          |       20 |        -1 |      8 |             0 |            |          8 | f        | t       |     4905 |              0 | f        |            0 |          0 |              0 | 1249609 | SCOTT  |  1249608
     1249610 | TABLE_A | ADMIN | 2015-04-13 19:33:48 | TABLE | MY_TEST  |      2 | COL2    | 1596672 |             | CHARACTER VARYING(20) | f          |     1043 |        32 |     -1 |             0 |            |         20 | f        | f       |     4905 |              0 | f        |            0 |          0 |              0 | 1249609 | SCOTT  |  1249608
    (2 rows)

这些观点和其他观点are documented here。

【讨论】:

谢谢,这很有帮助,但我希望它能给我一个选定数据库中所有表的所有列名的列表。其他视图只是没有为我提供列名列表。 这就是 _v_relation_column 提供的。 ATTNAME 是列名。

以上是关于Netezza 的信息架构 (INFORMATION_SCHEMA)的主要内容,如果未能解决你的问题,请参考以下文章

Netezza:使用 SQL / force 生成完整的统​​计信息

Netezza 的格式?错误信息是数据已损坏

DISTRIBUTE 子句的 Netezza JDBC 元数据信息

带有管道分隔文件的 Netezza 合并表

Netezza 中的配置文件

SQL 在 Netezza 中获取某些数据库的默认模式?