阅读(4717) (0)

Teradata 主索引

2017-01-07 10:32:29 更新

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

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

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

唯一主索引(UPI)

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

创建唯一主索引

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

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