Olá James, tudo bem com você?
Havia um equívoco no exercício. Em SQLite, a sintaxe para adicionar uma chave estrangeira a uma tabela já existente consiste em adicionar uma nova coluna na tabela que será a chave estrangeira.
Ou seja, para relacionar a tabela produtos
com a tabela fornecedores
, devemos adicionar uma nova coluna à tabela produtos
que será a chave estrangeira, referenciando o campo id
na tabela fornecedores
.
Exemplo:
ALTER TABLE produtos
ADD COLUMN fk_fornecedor INTEGER
REFERENCES tabelafornecedores(id);
Nesta instrução:
ALTER TABLE produtos
informa que queremos alterar a estrutura da tabela produtos
.ADD COLUMN fk_fornecedor
adiciona uma nova coluna chamada fk_fornecedor
à tabela produtos
. Este será o campo que armazenará a chave estrangeira.INTEGER
especifica o tipo de dados da nova coluna.REFERENCES tabelafornecedores(id)
indica que a nova coluna fk_fornecedor
na tabela produtos
é uma chave estrangeira que faz referência ao campo id
na tabela fornecedores
.
Para verificar se a chave estrangeira foi criada corretamente, use a sintaxe a seguir. que irá listar todas as restrições de chave estrangeira na tabela produtos
:
PRAGMA foreign_key_list(produtos);
O exercício do curso foi corrigido.
Espero ter ajudado. Conte com o apoio do Fórum na sua jornada. Fico à disposição. Abraços e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!