Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

[Dúvida] Chave primária - tabela pedidos e fornecedores

Olá. Aprendendo sobre chaves primárias aqui, percebi que as tabelas inseridas no início do curso (pedidos e fornecedores) ficaram com seu ID sem chave primária. Tentei adicionar uma coluna de chave primária para que estas colunas também a tivessem, mas não consegui. Mantenho as tabelas sem chave primária? Ou como posso fazer para adicioná-la?

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
4 respostas
solução!

Ei, João! Tudo bem?

Ter uma chave primária é uma boa prática, pois garante que cada registro na tabela seja único e pode facilitar a manipulação dos dados.

No SQLite, a maneira mais direta e padrão de garantir que uma tabela tenha uma chave primária é defini-la no momento da criação da tabela. Pois o o SQLite não permite adicionar uma restrição de chave primária (PRIMARY KEY) a uma coluna de uma tabela que já existe.

Você pode manter a tabela como está para seguir com o curso e absorver o conteúdo e, depois, para praticar, você pode recriar a tabela.

Seguem um exemplo passos:

  1. Na tabela pedidos você pode criar uma nova tabela assim:

    CREATE TABLE nova_pedidos (
      ID_Pedido INT PRIMARY KEY,
      Nome_Cliente VARCHAR(100),
      Data_Pedido DATE
    
    );
    
  2. Copie os dados da tabela antiga para a nova tabela:

    INSERT INTO nova_pedidos (ID_Pedido, Nome_Cliente, Data_Pedido)
    SELECT ID_Pedido, Nome_Cliente, Data_Pedido FROM pedidos;
    
  3. Se tudo estiver correto e os dados foram copiados com sucesso, você pode renomear as tabelas, se necessário:

    ALTER TABLE pedidos RENAME TO pedidos_antiga;
    ALTER TABLE nova_pedidos RENAME TO pedidos;
    

Repita o mesmo procedimento para a tabela de fornecedores, ajustando os nomes das tabelas e colunas conforme necessário.

Espero ter ajudado e qualquer dúvida, compartilhe no fórum.

Até mais, João!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado!

Obrigado Nathalia, ajudou bastante!

Há alguma maneira de importar um arquivo csv. para o banco de dados e ao mesmo tempo fazer com que uma das chaves seja primária, ou a única maneira seria criando a tabela por meio de comandos, conforme você apresentou?

Ei, João! Tudo bem?

Não é possível definir uma chave primária diretamente durante a importação do arquivo CSV no SQLite. O comando import apenas insere os dados em uma tabela que já precisa existir. Portanto, você deve criar a tabela antes da importação, especificando a coluna que será a PRIMARY KEY.

Até mais e bons estudos!

João pode tentar assim

Se o objetivo é ter uma coluna identificadora, o padrão é:

ALTER TABLE tabela ADD COLUMN id INTEGER;

Depois, preenche:

UPDATE tabela SET id = ROWID;

E usa o ROWID como chave de referência (SQLite sempre tem um ROWID interno, mesmo que você não tenha criado).