1
resposta

[Dúvida] A minha aparece que não tem Primary Key na tabela forcencedores

1 resposta

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:

Escolhendo o SGBD SQLite

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:

  1. 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;
    
  2. 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!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!