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