Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Oi, Fabio! Como você está?
Essa mensagem de erro indica que houve a tentativa de criar uma chave estrangeira a partir de uma chave primária que não existe. Possivelmente, durante a importação da tabela de fornecedores, não houve a identificação do ID enquanto chave primária.
Observando mais de perto o ambiente que você construiu, notei que você está utilizando o SQL Server como Sistema Gerenciador de Banco de Dados (SGBD), o que pode ter contribuído para a aparição deste erro. Nesse sentido, sugiro utilizar o mesmo SGBD que a instrutora, o SQLite. Para isso basta selecionar a aba "SQLite" para se conectar:
Replique os mesmos passos que você realizou até o momento, criando todas as tabelas e realizando as devidas alterações. Ao usar o SQLite, não passaremos por esta situação!
De todo modo, Fabio, caso queira continuar seus estudos com o SQL Server, será necessário adicionar uma chave primária à tabela de fornecedores, a partir das etapas abaixo:
Inicialmente, iremos alterar o tipo de dado e a natureza da coluna ID, tornando-a INT NOT NULL:
ALTER TABLE tabelafornecedores1
ALTER COLUMN ID INT NOT NULL;
Depois, iremos adicionar uma restrição de chave primária:
ALTER TABLE tabelafornecedores1
ADD CONSTRAINT PK_tabelafornecedores1 PRIMARY KEY (ID);
Feito isso, Fabio, já é possível criar a tabela de produtos normalmente:
CREATE TABLE tabelaprodutos (
ID_Produto INT PRIMARY KEY,
Nome_do_Produto VARCHAR (250),
Descrição TEXT,
Categoria INT,
Preco_de_Compra DECIMAL (10,2),
Unidade Varchar (50),
Fornecedor INT,
Data_de_Inclusao DATE,
FOREIGN KEY (Categoria) REFERENCES tabelacategorias (id_categoria),
FOREIGN KEY (Fornecedor) REFERENCES tabelafornecedores1 (id)
);
Espero que dê tudo certo, Fabio! Caso o problema continue ou surjam novas dúvidas, fico à disposição para te ajudar.
Um forte abraço!