Oii, Carlos! Como você está?
Excelente pergunta! Obrigada por compartilhar aqui no fórum, outras pessoas podem ter a mesma dúvida e encontrão seu post aqui sobre.
O código usado na atividade é uma forma mais sucinta para criar uma coluna como chave estrangeira ao mesmo tempo que adiciona à tabela. Representando pelo código ADD COLUMN fk_fornecedor INTEGER
.
Usando o comando FOREIGN KEY
teríamos o seguinte código:
ALTER TABLE produtos
ADD CONSTRAINT fk_fornecedor
FOREIGN KEY (fk_fornecedor)
REFERENCES fornecedores(id);
O código acima nos dá o mesmo retorno do que da atividade, porém ele é mais detalhado e com mais possibilidades de customizações ao código.
Para exemplificar, imagine que na abordagem ADD COLUMN
com REFERENCES
é como comprar um aparelho que já vem com a função integrada, tudo de uma vez só, sem precisar configurar nada extra. Já a abordagem ADD CONSTRAINT
com FOREIGN KEY
é como comprar um aparelho e, depois, adicionar acessórios específicos que personalizam e melhoram o funcionamento dele, permitindo ajustes mais detalhados.
Ambas formas estão corretas, só possuem esses detalhes em sua composição. E para saber qual usar, basta analisar o contexto e qual é o seu objetivo com a consulta para aplicar o que melhor se encaixa.
Espero ter esclarecido sua dúvida. Caso surjam outras, não deixe de compartilhar no fórum.
Bons estudos, Carlos!