Não consegui compreender a função do "ADD CONSTRAINT", para que serve essa restrição?
Não consegui compreender a função do "ADD CONSTRAINT", para que serve essa restrição?
Olá, Marcio, tudo bem?
Este comando, é utilizado para realizar a criação da FK em uma tabela após a sua criação:
ALTER TABLE TB_DEPENDENTE
ADD CONSTRAINT tb_funcionario_tb_dependente_fk
FOREIGN KEY (CPF_FUNCIONARIO)
REFERENCES TB_FUNCIONARIO (CPF)
ON DELETE NO ACTION
ON UPDATE NO ACTION;
Utilizamos o comando ALTER TB_DEPENDENTE
, para indicar que será realizada uma alteração em uma tabela, neste caso, será a tabela de DEPENDENTE.
O comando ADD CONSTRAINT tb_funcionario_tb_dependente_fk
, adiciona uma CONSTRAINT ou RESTRIÇÃO com o nome de tb_funcionario_tb_dependente_fk a tabela de TB_DEPENDENTE.
A restrição inserida é indicada no trecho seguinte, neste caso, o comando FOREIGN KEY (CPF_FUNCIONARIO)
, onde será adicionada a restrição de chave estrangeira ao campo CPF_FUNCIONARIO da tabela de TB_DEPENDENTE.
A penúltima parte do comando de alteração, é o REFERENCES TB_FUNCIONARIO (CPF)
, neste caso, está sendo referenciado a tabela origem do campo CPF, a tabela de TB_FUNCIONARIO e indicando o campo desta tabela que será feita a ligação.
As duas ultimas linhas, ON DELETE NO ACTION e ON UPDATE NO ACTION;
,de modo simplificado, vai gerar um erro toda vez que alterar um FUNCIONARIO que existir na tabela TB_DEPENDENTE, mas não estiver registrado na tabela TB_FUNCIONARIO .
Qualquer dúvida é só falar!