Teradata - Indice primario

L'indice primario viene utilizzato per specificare dove risiedono i dati in Teradata. Viene utilizzato per specificare quale AMP ottiene la riga di dati. Ogni tabella in Teradata deve avere un indice primario definito. Se l'indice primario non è definito, Teradata assegna automaticamente l'indice primario. L'indice primario fornisce il modo più veloce per accedere ai dati. Una primaria può avere un massimo di 64 colonne.

L'indice primario viene definito durante la creazione di una tabella. Esistono 2 tipi di indici primari.

  • Indice primario univoco (UPI)
  • Indice primario non univoco (NUPI)

Indice primario univoco (UPI)

Se la tabella è definita per avere UPI, la colonna considerata come UPI non dovrebbe avere valori duplicati. Se vengono inseriti valori duplicati, verranno rifiutati.

Crea indice primario univoco

L'esempio seguente crea la tabella Salary con la colonna EmployeeNo come indice primario univoco.

CREATE SET TABLE Salary ( 
   EmployeeNo INTEGER, 
   Gross INTEGER,  
   Deduction INTEGER, 
   NetPay INTEGER 
) 
UNIQUE PRIMARY INDEX(EmployeeNo);

Indice primario non univoco (NUPI)

Se la tabella è definita per avere NUPI, la colonna considerata come UPI può accettare valori duplicati.

Crea indice primario non univoco

L'esempio seguente crea la tabella dei conti dei dipendenti con la colonna EmployeeNo come indice primario non univoco. EmployeeNo è definito come Indice primario non univoco poiché un dipendente può avere più account nella tabella; uno per conto stipendio e un altro per conto rimborso.

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