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);