SQL: chiave esterna
Una chiave esterna è una chiave utilizzata per collegare due tabelle insieme. A volte viene anche chiamata chiave di riferimento.
Una chiave esterna è una colonna o una combinazione di colonne i cui valori corrispondono a una chiave primaria in una tabella diversa.
The relationship between 2 tables matches the Primary Key in one of the tables with a Foreign Key in the second table.
Se una tabella ha una chiave primaria definita su uno o più campi, non puoi avere due record con lo stesso valore di quel campo.
Esempio
Considera la struttura delle seguenti due tabelle.
CUSTOMERS table
CREATE TABLE CUSTOMERS(
ID INT NOT NULL,
NAME VARCHAR (20) NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR (25) ,
SALARY DECIMAL (18, 2),
PRIMARY KEY (ID)
);
ORDERS table
CREATE TABLE ORDERS (
ID INT NOT NULL,
DATE DATETIME,
CUSTOMER_ID INT references CUSTOMERS(ID),
AMOUNT double,
PRIMARY KEY (ID)
);
Se la tabella ORDERS è già stata creata e la chiave esterna non è stata ancora impostata, utilizzare la sintassi per specificare una chiave esterna modificando una tabella.
ALTER TABLE ORDERS
ADD FOREIGN KEY (Customer_ID) REFERENCES CUSTOMERS (ID);
ELIMINA un vincolo CHIAVE ESTERA
Per eliminare un vincolo FOREIGN KEY, utilizzare la seguente sintassi SQL.
ALTER TABLE ORDERS
DROP FOREIGN KEY;