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

Runtime error near line 4: UNIQUE constraint failed: CLIENTES.COD_CLIENTE (19)

Bom dia a todos

Eu fui tentar fazer o código de insert de clientes, que está na descrição da aula, no SQLite com visual studio code, que é este:

INSERT INTO CLIENTES (COD_CLIENTE, NOME, EMAIL, RUA, BAIRRO, CIDADE, ESTADO) VALUES
('CLT001', 'João da Silva', 'joao.silva@example.com', 'Rua das Flores', 'Centro', 'São Paulo', 'SP'),
('CLT002', 'Maria Oliveira', 'maria.oliveira@example.com', 'Av. das Palmeiras', 'Jardins', 'Rio de Janeiro', 'RJ'),
('CLT003', 'Empresa A Ltda', 'empresa.a@example.com', 'Rua das Flores', 'Centro', 'São Paulo', 'SP'),
('CLT004', 'Pedro Souza', 'pedro.souza@example.com', 'Rua dos Pássaros', 'Alto da Serra', 'Belo Horizonte', 'MG'),
('CLT005', 'Ana Santos', 'ana.santos@example.com', 'Rua das Árvores', 'Vila Nova', 'Joinville', 'SC'),
('CLT006', 'Empresa F EIRELI', 'empresa.f@example.com', 'Rua das Estrelas', 'Setor Oeste', 'Brasília', 'DF'),
('CLT007', 'Empresa G Ltda', 'empresa.g@example.com', 'Av. das Ondas', 'Barra', 'Salvador', 'BA'),
('CLT008', 'Empresa H S/A', 'empresa.h@example.com', 'Rua das Pedras', 'Centro', 'Recife', 'PE'),
('CLT009', 'Carlos Ferreira', 'carlos.ferreira@example.com', 'Av. das Dunas', 'Praia de Iracema', 'Fortaleza', 'CE'),
('CLT010', 'Mariana Lima', 'mariana.lima@example.com', 'Rua das Estrelas', 'Setor Oeste', 'Brasília', 'DF'),
('CLT011', 'Fernando Costa', 'fernando.costa@example.com', 'Av. das Ondas', 'Barra', 'Salvador', 'BA'),
('CLT012', 'Empresa B S/A', 'empresa.b@example.com', 'Av. das Palmeiras', 'Jardins', 'Rio de Janeiro', 'RJ'),
('CLT013', 'Isabela Fernandes', 'isabela.fernandes@example.com', 'Rua das Pedras', 'Centro', 'Recife', 'PE'),
('CLT014', 'Empresa C EIRELI', 'empresa.c@example.com', 'Rua dos Pássaros', 'Alto da Serra', 'Belo Horizonte', 'MG'),
('CLT015', 'Empresa D LTDA', 'empresa.d@example.com', 'Rua das Árvores', 'Vila Nova', 'Joinville', 'SC'),
('CLT016', 'Empresa E S/A', 'empresa.e@example.com', 'Av. das Dunas', 'Praia de Iracema', 'Fortaleza', 'CE'),
('CLT017', 'Rafaela Carvalho',  'rafaela.carvalho@example.com', 'Rua dos Coqueiros', 'Centro', 'São Luís', 'MA'),
('CLT018', 'Lucas Santos', 'lucas.santos@example.com', 'Av. das Montanhas', 'Altiplano', 'Natal', 'RN'),
('CLT019', 'Empresa I EIRELI', 'empresa.i@example.com', 'Rua dos Coqueiros', 'Centro', 'São Luís', 'MA'),
('CLT020', 'Empresa J LTDA', 'empresa.j@example.com', 'Av. das Montanhas', 'Altiplano', 'Natal', 'RN');

Mas aparece para mim uma mensagem de erro:

Runtime error near line 4: UNIQUE constraint failed: CLIENTES.COD_CLIENTE (19)

Eu não consegui encontrar o erro, tanto que eu fiz o mesmo código no MySQL com o MySQL workbench e funcionou:

13:48:00	INSERT INTO CLIENTES (COD_CLIENTE, NOME, EMAIL, RUA, BAIRRO, CIDADE, ESTADO) VALUES ('CLT001', 'João da Silva', 'joao.silva@example.com', 'Rua das Flores', 'Centro', 'São Paulo', 'SP')...
// resto da mensagem omitida
20 row(s) affected Records: 20  Duplicates: 0  Warnings: 0	0.016 sec

A minha dúvida é, porque esse comando funciona no MySQL workbench funciona e no SQLite com visual studio code não?

Ps: há um erro na transcrição da aula onde, o comando do telefone não tem uma vírgula:

//código na transcrição
CREATE TABLE TELEFONES_CLIENTES (
    COD_TELEFONE VARCHAR(10) NOT NULL,
    COD_CLIENTE VARCHAR(10) NOT NULL,
    TELEFONES VARCHAR(15) NOT NULL
  PRIMARY KEY (COD_TELEFONE)
)

código corrigido

CREATE TABLE TELEFONES_CLIENTES (
    COD_TELEFONE VARCHAR(10) NOT NULL,
    COD_CLIENTE VARCHAR(10) NOT NULL,
    //inserido a vírgula
    TELEFONES VARCHAR(15) NOT NULL,
  PRIMARY KEY (COD_TELEFONE)
)
2 respostas

Eu fiz novamente essa mesma query no dia seguinte e deu certo. Eu acredito que o motivo foi de eu ter utilizado a inserção estando no mesmo arquivo que eu fiz a inserção da tabela do desnormalizado. Entao a query era jogada automaticamente para essa tabela, que já tinha dados, ao invés de ir para a tabela 1fn

solução!

Oi, Murilo! Como vai?

Que bom que conseguiu resolver o problema! A justificativa que você encontrou faz todo o sentido.

Em relação ao código errado na transcrição, ele já foi corrigido. Muito obrigada por compartilhar sua observação conosco!

Sempre que precisar de ajuda, conte com o fórum. Um grande abraço.