Teradata - 主索引


主索引用于指定数据在 Teradata 中的位置。用于指定哪个AMP获取数据行。Teradata 中的每个表都需要定义一个主索引。如果未定义主索引,Teradata 会自动分配主索引。主索引提供了访问数据的最快方式。主数据库最多可以有 64 列。

主索引是在创建表时定义的。主索引有两种类型。

  • 唯一主索引(UPI)
  • 非唯一主索引(NUPI)

唯一主索引 (UPI)

如果表被定义为具有 UPI,则被视为 UPI 的列不应具有任何重复值。如果插入任何重复值,它们将被拒绝。

创建唯一主索引

以下示例创建 Salary 表,其中 EmployeeNo 列作为唯一主索引。

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

非唯一主索引 (NUPI)

如果表被定义为具有 NUPI,则被视为 UPI 的列可以接受重复值。

创建非唯一主索引

以下示例创建员工帐户表,其中 EmployeeNo 列作为非唯一主索引。EmployeeNo 定义为非唯一主索引,因为一个员工可以在表中拥有多个帐户;一份用于工资账户,另一份用于报销账户。

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