📅  最后修改于: 2020-11-29 09:00:30             🧑  作者: Mango
主索引用于指定数据在Teradata中的位置。它用于指定哪个AMP获取数据行。 Teradata中的每个表都必须定义一个主索引。如果未定义主索引,则Teradata会自动分配主索引。主索引提供了访问数据的最快方法。一个主数据库最多可以有64列。
主索引是在创建表时定义的。主索引有2种类型。
如果表被定义为具有UPI,则视为UPI的列不应具有任何重复值。如果插入任何重复的值,它们将被拒绝。
下面的示例使用列EmployeeNo作为唯一主索引创建Salary表。
CREATE SET TABLE Salary (
EmployeeNo INTEGER,
Gross INTEGER,
Deduction INTEGER,
NetPay INTEGER
)
UNIQUE PRIMARY INDEX(EmployeeNo);
如果表被定义为具有NUPI,则视为UPI的列可以接受重复值。
以下示例创建雇员账户表,其中雇员列为非唯一主索引。 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);