SQL - chave estrangeira

Uma chave estrangeira é uma chave usada para vincular duas tabelas. Às vezes, também é chamada de chave de referência.

Uma chave estrangeira é uma coluna ou uma combinação de colunas cujos valores correspondem a uma chave primária em uma tabela diferente.

The relationship between 2 tables matches the Primary Key in one of the tables with a Foreign Key in the second table.

Se uma tabela tem uma chave primária definida em qualquer campo (s), então você não pode ter dois registros com o mesmo valor desse campo (s).

Exemplo

Considere a estrutura das duas tabelas a seguir.

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 a tabela ORDERS já foi criada e a chave estrangeira ainda não foi configurada, use a sintaxe para especificar uma chave estrangeira alterando uma tabela.

ALTER TABLE ORDERS 
   ADD FOREIGN KEY (Customer_ID) REFERENCES CUSTOMERS (ID);

DROP uma restrição FOREIGN KEY

Para eliminar uma restrição FOREIGN KEY, use a seguinte sintaxe SQL.

ALTER TABLE ORDERS
   DROP FOREIGN KEY;
sql-rdbms-concepts.htm