Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Erro ao inserir dados na tabela de produtos

SQLITE_CONSTRAINT_PRIMARYKEY: sqlite3 result code 1555: UNIQUE constraint failed: tabelaprodutos.ID_Produto

Ao tentar rodar o código aparece esse erro, pelo que entendi indica que há uma restrição que nãoe stá sendo obedecida;
aparentemente por que já existem alguns IDs com a mesma numeração em outra tabela no mesmo banco.
É isso ou se trata de outra restrição? Como posso solucionar esse erro? obrigada
Segue o código:

INSERT INTO tabelaprodutos
(id_produto,
nome_do_produto,
descricao,
categoria,
preco_de_compra,
unidade,
fornecedor,
data_de_inclusao)
VALUES
(1, 'Smartphone X', 'Smartphone de ultima geracao', 1, 699.99, 'Unidade', 1, '2023-08-01'),
(2, 'Notebook Pro', 'Notebook poderoso com tela HD', 2, 1199.99, 'Unidade', 2, '2023-08-02'),
(3, 'Tablet Lite', 'Tablet compacto e leve', 3, 299.99, 'Unidade', 3, '2023-08-03'),
(4, 'TV LED 55"', 'TV LED Full HD de 55 polegadas', 4, 599.99, 'Unidade', 4, '2023-08-04'),
(5, 'Câmera DSLR', 'Câmera digital DSLR com lente intercambiável', 5, 699.99, 'Unidade', 5, '2023-08-05'),
(6, 'Impressora Laser', 'Impressora laser de alta qualidade', 6, 349.99, 'Unidade', 6, '2023-08-06'),
(7, 'Mouse Óptico', 'Mouse óptico sem fio', 7, 19.99, 'Unidade', 7, '2023-08-07'),
(8, 'Teclado sem Fio', 'Teclado sem fio ergonômico', 8, 39.99, 'Unidade', 8, '2023-08-08'),
(9, 'Headphones Estéreo', 'Headphones estéreo com cancelamento de ruído', 9, 149.99, 'Unidade', 9, '2023-08-09'),
(10, 'Smartwatch', 'Smartwatch com monitor de frequência cardíaca', 10, 199.99, 'Unidade', 10, '2023-08-10'),
(11, 'Monitor 24"', 'Monitor LED Full HD de 24 polegadas', 11, 149.99, 'Unidade', 11, '2023-08-11'),
(12, 'HD Externo 1TB', 'HD Externo portátil de 1TB', 12, 79.99, 'Unidade', 12, '2023-08-12'),
(13, 'Drone DJI', 'Drone DJI com câmera 4K', 13, 799.99, 'Unidade', 13, '2023-08-13'),
(14, 'Console de Jogos', 'Console de jogos de última geração', 14, 299.99, 'Unidade', 14, '2023-08-14'),
(15, 'Fones de Ouvido Bluetooth', 'Fones de ouvido Bluetooth com estojo de carregamento', 15, 59.99, 'Unidade', 15, '2023-08-15'),
(16, 'Projetor HD', 'Projetor HD de alta definição', 16, 499.99, 'Unidade', 16, '2023-08-16'),
(17, 'Impressora Multifuncional', 'Impressora multifuncional com scanner', 6, 249.99, 'Unidade', 6, '2023-08-17'),
(18, 'Notebook Ultrafino', 'Notebook ultrafino com SSD rápido', 2, 999.99, 'Unidade', 2, '2023-08-18'),
(19, 'Mouse Gamer', 'Mouse gamer com iluminação RGB', 7, 49.99, 'Unidade', 7, '2023-08-19'),
(20, 'Câmera de Ação', 'Câmera de ação à prova d''água', 5, 129.99, 'Unidade', 5, '2023-08-20'),
(21, 'Tablet Profissional', 'Tablet profissional para designers', 3, 499.99, 'Unidade', 3, '2023-08-21'),
(22, 'Monitor Curvo', 'Monitor LED curvo de 32 polegadas', 11, 299.99, 'Unidade', 11, '2023-08-22'),
(23, 'Teclado Mecânico', 'Teclado mecânico para jogos', 8, 89.99, 'Unidade', 8, '2023-08-23'),
(24, 'Console Portátil', 'Console de jogos portátil', 14, 199.99, 'Unidade', 14, '2023-08-24'),
(25, 'HD Externo 2TB', 'HD Externo portátil de 2TB', 12, 109.99, 'Unidade', 12, '2023-08-25'),
(26, 'Kit de Caixas de Som', 'Kit de caixas de som estéreo', 17, 29.99, 'Unidade', 17, '2023-08-26'),
(27, 'Câmera de Segurança', 'Câmera de segurança com visão noturna', 18, 79.99, 'Unidade', 18, '2023-08-27'),
(28, 'Projetor Mini', 'Projetor mini portátil', 16, 199.99, 'Unidade', 16, '2023-08-28'),
(29, 'Impressora a Jato de Tinta', 'Impressora a jato de tinta colorida', 6, 89.99, 'Unidade', 6, '2023-08-29'),
(30, 'Servidor de Rede', 'Servidor de rede empresarial', 19, 799.99, 'Unidade', 19, '2023-08-30'),

Não inseri toda a lista por que ultrapassou o limite de caracteres aqui desse formulário.

1 resposta
solução!

Olá, Maria, tudo bem?

O erro (SQLITE_CONSTRAINT_PRIMARYKEY: sqlite3 result code 1555: UNIQUE constraint failed: tabelaprodutos.Id_produto) ocorre porque a coluna Id_produto é uma chave primária, e o banco de dados exige que os valores nela sejam únicos. Em casos de entradas duplicadas para essa coluna, você recebe essa mensagem.

É possível que você já tenha executado esse trecho de código e os dados já foram inseridos corretamentes. Para isso basta executar o comado:

SELECT * FROM tabelaprodutos

Verifique se há dados nessa tabela.

Você também pode verifique quais IDs já estão presentes na tabela tabelaprodutos. Você pode fazer isso com:

SELECT Id_produto FROM tabelaprodutos;

Verifique se os IDs dos produtos que você está tentando inserir não estão em conflito com os IDs já existentes. Você pode precisar alterar os IDs no seu comando INSERT para garantir que são únicos.

Por exemplo, os IDs de 1 a 40 já existem na tabela, você pode começar a inserir novos produtos a partir do ID 41:

INSERT INTO tabelaprodutos
(id_produto, nome_do_produto, descricao, categoria, preco_de_compra, unidade, fornecedor, data_de_inclusao)
VALUES
(41, 'Novo Produto 1', 'Descrição do novo produto 1', 20, 99.99, 'Unidade', 20, '2023-09-01'),
(42, 'Novo Produto 2', 'Descrição do novo produto 2', 21, 199.99, 'Unidade', 21, '2023-09-02');

Espero ter ajudado e fico à disposição.

Abraços e bons estudos!

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