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!