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;
sql-rdbms-conceptos.htm