4D v16

definição_chave_externa

Página Inicial

 
4D v16
definição_chave_externa

definição_chave_externa  


 

 

Command foreign_key_definitioCONSTRAINT nom_sql

FOREIGN KEY (ref_coluna, ... , ref_coluna)

REFERENCES nom_sql [(ref_coluna, ... , ref_coluna)]

[ON DELETE {RESTRICT |CASCADE}]

[ON UPDATE {RESTRICT |CASCADE}]

Uma definição de chave externa (definição_chave_externa) se usa para fazer corresponder os campos chaves primárias (ref_coluna) definidos em outra tabela com a função de preservar a integridade dos dados. A restrição FOREIGN KEY permite passar as referencias de uma ou mais colunas (ref_coluna) a definir como chaves externas (correspondentes as chaves primárias de outra tabela).

A cláusula CONSTRAINT nom_sql se utiliza para nomear a restrição FOREIGN KEY.

A cláusula REFERENCES permite especificar os campos chaves primárias fonte correspondentes na outra tabela (designada por nom_sql). Pode omitir a lista de campos (argumentos ref_coluna) se a tabela (nom_sql) definida na cláusula REFERENCES tem uma chave primária que será utilizada como a chave correspondente para a restrição chave externa.

A cláusula opcional ON DELETE CASCADE especifica que quando se elimina uma linha da tabela pai (que contém os campos chaves primárias), também é excluída das linhas associadas com a linha da tabela filho (que contém os campos chaves externas). Passar a cláusula opcional ON DELETE RESTRICT evita a eliminação de dados de uma tabela se outras tabelas as referenciam.

A cláusula opcional ON UPDATE CASCADE especifica que sempre que se atualiza uma linha na tabela pai (que contém os campos de chaves primárias), também se atualiza nas linhas associadas a essa linha da tabela filho (que contém os campos chaves externas). Passar a cláusula opcional ON UPDATE RESTRICT evita a atualização dos dados de uma tabela se outras tabelas as referenciam.
Tenha em conta que se passadas as duas cláusulas ON DELETE e ON UPDATE, ambas devem ser do mesmo tipo (por exemplo, ON DELETE CASCADE e ON UPDATE CASCADE ou ON DELETE RESTRICT e ON UPDATE RESTRICT).
Se não passam nem a cláusula ON DELETE nem a ON UPDATE, então CASCADE se utiliza como a regra por padrão.

Exemplo  

Este exemplo cria a tabela ORDENES depois define a coluna SID_Clientes como chave externa, associada a coluna SID da tabela CLIENTES:

CREATE TABLE ORDENES
(ID_Ordem INT32,
SID_Clientes INT32,
Quantidade NUMERIC,
PRIMARY KEY (ID_Comando),
CONSTRAINT fk_1 FOREIGN KEY (SID_Clientes) REFERENCES CLIENTES(SID));



Ver também 

ALTER TABLE
definição_chave_primária
ref_coluna

 
PROPRIEDADES 

Produto: 4D
Tema: Regras de sintaxe

 
HISTÓRIA 

 
ARTICLE USAGE

Manual de SQL ( 4D v16)