16.20 - ALTER TABLE - Teradata Vantage NewSQL Engine

Teradata Vantage™ 時系列テーブルおよび操作

prodname
Teradata Database
Teradata Vantage NewSQL Engine
vrm_release
16.20
category
プログラミング リファレンス
featnum
B035-1208-162K-JPN

ALTER TABLE文は、時系列テーブルとともに使用できます。ALTER TABLE構文の詳細については、<Teradata Vantage™ SQLデータ定義言語の構文規則および例、B035-1144>を参照してください。

時系列テーブルでは、次のALTER TABLEオプションを使用できません。
  • ALTER TABLE MODIFY PRIMARY
  • ALTER TABLE FROM TIME ZONE
  • ALTER TABLE SETまたはRESET DOWN
  • ALTER TABLE TO CURRENT

ただし、ALTER TABLE MODIFY PRIMARY文を使用して、PRIMARY TIME INDEXの名前を追加したり既存の名前を削除したりできます。

システム生成の時系列列とALTER TABLE

ALTER TABLE文では、システム生成の時系列列、TD_TIMEBUCKET、TD_TIMECODE、またはTD_SEQNOを指定することはできません。これには次が含まれます。
  • ALTER TABLE table_name ADD column_name
  • ALTER TABLE table_name DROP column_name
  • ALTER TABLE ADD FOREIGN KEY (column_name)
  • ALTER TABLE ADD UNIQUE column_name
  • ALTER TABLE ADD PRIMARY KEY column_name
  • ALTER TABLE RENAME column_name
システム生成の時系列列、TD_TIMEBUCKET、TD_TIMECODE、またはTD_SEQNOに次の列属性を追加することはできません。
  • DEFAULT、DEFAULT NULL、DEFAULT DATE、DEFAULT TIME、またはDEFAULT USER
  • NAMED
  • NULLまたはNOT NULL
  • CASESPECIFICまたはNOT CASESPECIFIC
  • CSまたはNOT CS
  • CHARACTER SET
  • COMPRESSまたはNO COMPRESS
  • UPPERCASEまたはUC

例: PTIテーブルの変更

この例のテーブル定義には、名前のないPRIMARY TIME INDEXが含まれています。

CREATE TABLE ocean_buoy(c1 INTEGER, c2 INTEGER)
PRIMARY TIME INDEX(TIMESTAMP(2) WITH TIME ZONE, DATE '2016-01-03', HOURS(2));

ALTER TABLE文を使用して、PRIMARY TIME INDEXの名前を追加することができます。

ALTER TABLE ocean_buoy MODIFY PRIMARY TIME INDEX my_pti_index;

SHOW TABLE文はテーブル定義を示しており、これには名前付きPRIMARY TIME INDEXが含まれています。

SHOW TABLE ocean_buoy;

CREATE SET TABLE ocean_buoy ,NO FALLBACK ,
     NO BEFORE JOURNAL,
     NO AFTER JOURNAL,
     CHECKSUM = DEFAULT,
     DEFAULT MERGEBLOCKRATIO,
     MAP = TD_MAP1
   (
      TD_TIMEBUCKET BIGINT NOT NULL GENERATED SYSTEM TIMECOLUMN,
      TD_TIMECODE TIMESTAMP(6) NOT NULL GENERATED TIMECOLUMN,
      TD_SEQNO INT NOT NULL GENERATED TIMECOLUMN,
      c1 INTEGER,
      c2 INTEGER)
 PRIMARY TIME INDEX my_pti_index (TIMESTAMP(6), DATE '2015-05-02', HOURS(1), COLUMNS(c1,c2), NONSEQUENCED);