Teradata-primary-index

提供:Dev Guides
移動先:案内検索

Teradata-プライマリインデックス

プライマリインデックスは、Teradata内のデータの場所を指定するために使用されます。 どのAMPがデータ行を取得するかを指定するために使用されます。 Teradataの各テーブルには、プライマリインデックスを定義する必要があります。 プライマリインデックスが定義されていない場合、Teradataは自動的にプライマリインデックスを割り当てます。 プライマリインデックスは、データにアクセスする最速の方法を提供します。 プライマリには最大64列を含めることができます。

プライマリインデックスは、テーブルの作成中に定義されます。 プライマリインデックスには2種類あります。

  • 一意のプライマリインデックス(UPI)
  • 非ユニークプライマリインデックス(NUPI)

一意のプライマリインデックス(UPI)

テーブルにUPIがあると定義されている場合、UPIと見なされる列に重複する値を含めることはできません。 重複する値が挿入された場合、それらは拒否されます。

一意のプライマリインデックスを作成する

次の例では、一意のプライマリインデックスとしてEmployeeNo列を持つSalaryテーブルを作成します。

CREATE SET TABLE Salary (
   EmployeeNo INTEGER,
   Gross INTEGER,
   Deduction INTEGER,
   NetPay INTEGER
)
UNIQUE PRIMARY INDEX(EmployeeNo);

非ユニークプライマリインデックス(NUPI)

テーブルがNUPIを持つように定義されている場合、UPIと見なされる列は重複値を受け入れることができます。

一意でないプライマリインデックスを作成する

次の例では、非一意のプライマリインデックスとして列EmployeeNoを持つ従業員アカウントテーブルを作成します。 従業員はテーブル内に複数のアカウントを持つことができるため、EmployeeNoは一意でないプライマリインデックスとして定義されます。 1つは給与アカウント用、もう1つは払い戻しアカウント用です。

CREATE SET TABLE Employee _Accounts (
   EmployeeNo INTEGER,
   employee_bank_account_type BYTEINT.
   employee_bank_account_number INTEGER,
   employee_bank_name VARCHAR(30),
   employee_bank_city VARCHAR(30)
)
PRIMARY INDEX(EmployeeNo);