获取Teradata

时间:2017-05-05 10:48:13

标签: sql select primary-key teradata

如何获取Teradata中特定表的主键列表(而不是索引)?

我已经创建了表

CREATE MULTISET TABLE TBL_TEMPORAL_TRANSACTTIME
 ( 
  ParID int not null, 
  DataSourceTypeCd VARCHAR(10) not null, 
  TxnPrd PERIOD(TIMESTAMP(6) WITH TIME ZONE) TITLE 'Transaction Period' NOT NULL AS TRANSACTIONTIME,
  PRIMARY KEY(ParID, DataSourceTypeCd ) 
  )  PRIMARY INDEX (ParID);

我需要一些查询来返回主键的列 所以我想得到'ParID'和'DataSourceTypeCd'列。 任何人都可以帮助我吗?

我试过

SELECT  *
FROM    DBC.IndicesV
WHERE   TABLENAME='TBL_TEMPORAL_TRANSACTTIME'
    AND IndexType = 'K'
;

但它给了我空洞的结果。

SELECT  IndexType, ColumnName, UniqueOrPK
FROM    DBC.IndicesV
WHERE   TABLENAME='TBL_TEMPORAL_TRANSACTTIME';

返回:

IndexType   ColumnName  UniqueOrPK
P   ParID   
J   ParID   K
J   TxnPrd  K
J   DataSourceTypeCd    K

1 个答案:

答案 0 :(得分:0)

Teradata 15.10文档;数据字典,第3章:视图参考,主题 IndicesV [X] (页164),标题 IndexType 表示IndexType的值K反映主键。< / p>

以下将给出PK列:

SELECT  ColumnName
FROM    DBC.IndicesV
WHERE   TABLENAME='TBL_TEMPORAL_TRANSACTTIME'
        AND IndexType = 'K'
;

建议您添加AND DatabaseName = 'YourDBName'以更具体地了解您的表格。