Teradataの特定のテーブルのプライマリキー(インデックスではない)のリストを取得する方法は?TeradataのテーブルのPKのリストを取得
私はテーブル
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
UniqueOrPK列を見ましたか? –
私は一時的なテーブルに対して同じ動作をします。 – Andrew
一時テーブルに2つのPKカラム+ TRANSACTIONTIMEカラムがある 'J 'インインデックスがあるようです。また、PrimaryKeyであるという情報も、UniqueOrPKフィールドに移動しました。 PKを使って一時的に制限を実装する特殊なケースのように見えます。 Btw。別のジョイン・インデックスを追加しようとすると、「ジョイン・インデックスDDLでエラーが発生します。現在のジョイン・インデックスにはTransactionTimeカラムが含まれていません。」 – ULick