Teradata - 主要指数

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

创建表时定义主索引.主要索引有两种类型.

  • 唯一主要索引(UPI)

  • 非唯一主要索引(NUPI)

唯一主索引(UPI)

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

创建唯一主索引

以下示例创建Salary表,其中EmployeeNo列为Unique主要索引.

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