Ir ao conteúdo
  • Cadastre-se

MySQL Alguém poderia me informar porque esse bd está dando erro?


Posts recomendados

O banco todo em si está funcionando, mas ao tentar ativar a ultima linha gera este erro:

01:10:12    insert into Pedido (numPedido, codigoCliente, codigoVendedor, tipo, dataEmbarque, dataEntrega, valorTotal, desconto) values (1, 101, 5, 'À vista', '2017-01-12', '2017-02-12', 3000.00, 10)    Error Code: 1452. Cannot add or update a child row: a foreign key constraint fails (`unidade1_atividade`.`pedido`, CONSTRAINT `pedido_ibfk_1` FOREIGN KEY (`codigoCliente`) REFERENCES `cliente` (`codigo`))    0.062 sec

 

O banco: 

create database banco_exempo;
use banco_exempo;

create table Cliente (
codigo int not null,
nome varchar(50),
endereco varchar(100),
cpf char(11) not null,
telefone char(11),
primary key(codigo)
);

create table Vendedor (
codigo int not null,
nome varchar(50),
salario decimal(7,2),
primary key(codigo)
);

create table Produto (
id int not null,
unidade char(3),
descricao varchar(50),
valorUnitario decimal(7,2),
primary key(id)
);

create table Pedido (
numPedido int not null,
prazoEntrega date,
codigoCliente int,
codigoVendedor int,
primary key(numPedido),
foreign key (codigoCliente) references Cliente(codigo),
foreign key (codigoVendedor) references Vendedor(codigo)
);

create table ItemPedido (
numeroPedido int not null,
idProduto int not null,
quantidade int,
primary key(numeroPedido),
foreign key(numeroPedido) references Pedido(numPedido),
foreign key(idProduto) references Produto(id)
);

create table Fabricante (
codFabricante int not null,
codProduto int not null,
primary key(codFabricante),
foreign key(codProduto) references Produto(codigo)
);

alter table Cliente add column tipo varchar(40);
alter table Cliente modify nome varchar(100);

alter table Vendedor change codigo id int not null;
alter table Vendedor add column telefone char(11);

alter table Pedido drop column prazoEntrega;
alter table Pedido add column tipo varchar(40);
alter table Pedido add column dataEmbarque date;
alter table Pedido add column dataEntrega date;
alter table Pedido add column valorTotal decimal(7,2);
alter table Pedido add column desconto decimal(7,2);
alter table Pedido modify desconto decimal(4,1) not null;

alter table Produto change id codigo int not null;
alter table Produto drop column unidade;
alter table Produto change descricao nome varchar(100);
alter table Produto change valorUnitario preco decimal(7,2);

insert into Pedido (numPedido, codigoCliente, codigoVendedor, tipo, dataEmbarque, dataEntrega, valorTotal, desconto) values (1, 101, 5, 'À vista', '2017-01-12', '2017-02-12', 3000.00, 10);


 

Link para o comentário
Compartilhar em outros sites

  • Moderador

@Lukinh4s Aparentemente  você tem problemas com suas chaves estrangeiras na tabela.

 

Eu recomendo que você refaça seu banco de dados e utilize o modo "designer" do mysql. Crie os relacionamentos por lá. Com suas tabelas devidamente criadas e com as indexes criadas de forma correta.

 

Eu tenho uns videos antigos sobre como criar tabelas e relacionamentos via mysql com o designer.  Apesar de ser "antigo" serve muito bem para novas versões do mysql. Coim esse método não vai ter problema algum.

 

 

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Moderador

@Lukinh4s Sim eu entendo, mas você deve saber que o  MySQL Workbench não é o banco de dados. ele é só um programa modelador. Você cria o modelo do banco e precisa "fazer um upload" para o mysql. 

 

De qualquer forma, o erro é relacionado as chaves estrangeiras.  revise o jeito que foi feito, provavelmente você cometeu algum erro usando o programa. e sim, muito já usei ele na faculdade e errar isso é bastante comum,, visto que tem varias formas de relacionamento, como por exemplo usar campos existentes ou inexistentes( nesse caso o campo de chave estrangeira é criado automaticamente pelo programa)

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!