SQL: clave externa
Una clave externa es una clave que se utiliza para vincular dos tablas. A veces, esto también se denomina clave de referencia.
Una clave externa es una columna o una combinación de columnas cuyos valores coinciden con una clave principal en una tabla diferente.
The relationship between 2 tables matches the Primary Key in one of the tables with a Foreign Key in the second table.
Si una tabla tiene una clave primaria definida en cualquier campo, no puede tener dos registros que tengan el mismo valor de ese campo.
Ejemplo
Considere la estructura de las dos tablas siguientes.
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)
);
Si la tabla ORDERS ya se ha creado y la clave externa aún no se ha establecido, utilice la sintaxis para especificar una clave externa modificando una tabla.
ALTER TABLE ORDERS
ADD FOREIGN KEY (Customer_ID) REFERENCES CUSTOMERS (ID);
SUPRIMIR una restricción EXTRANJERA
Para eliminar una restricción FOREIGN KEY, utilice la siguiente sintaxis SQL.
ALTER TABLE ORDERS
DROP FOREIGN KEY;