主索引用于指定数据在Teradata中的位置.它用于指定哪个AMP获取数据行. Teradata中的每个表都需要定义主索引.如果未定义主索引,Teradata会自动分配主索引.主索引提供了访问数据的最快方法.主数据库最多可包含64列.
创建表时定义主索引.主要索引有两种类型.
唯一主要索引(UPI)
非唯一主要索引(NUPI)
如果表定义为具有UPI ,那么被视为UPI的列不应该有任何重复值.如果插入了任何重复值,它们将被拒绝.
以下示例创建Salary表,其中EmployeeNo列为Unique主要索引.
CREATE SET TABLE Salary ( EmployeeNo INTEGER, Gross INTEGER, Deduction INTEGER, NetPay INTEGER ) UNIQUE PRIMARY INDEX(EmployeeNo);
如果表被定义为具有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);