Erro tabela locacao

13 respostas
joaolenosi

Ola amigos estou lendo o livro programação java para web, e fazendo os exemplos.
Agora estou tendo um problema na criação dessa tablea,

create table locacao ( cod_locacao int not null auto_increment, cod_cliente int not null, cod_midia int not null, data_emprestimo date null, hora_emprestimo time null, data_devolucao date null, obs text null, primary key(cod_locacao, cod_cliente, cod_midia), constraint fk_locacao_cod_cliente foreign key(cod_cliente) references cliente (cod_Cliente) on delete no action on update cascade, constraint fk_locacao_cod_midia foreign key(cod_midia) references midia (cod_midia) on delete no action on update cascade );

Alguem sabe dizer o que tem de errado ? fiz do mesmo jeto que etar no livro.
Olha o erro.:

Erro 1005 (HY000): can´t create table 'locadora.locacao' (errno: 150)

Ps, desculpe se postei no lugar errado.

13 Respostas

joaolenosi

O autor do livro, que estou seguindo é.: Décio heinzelmanm luckow

joaolenosi

Alguem sabe, o que significa o erro ?

A

Colega, joguei seu erro no google e há referências a problemas na definição das chaves primárias. Verifique suas tabelas “cliente” e “midia”, se estão com as PK’s bonitinhas e se os campos cod_cliente e cod_midia são int em todas as tabelas envolvidas.

joaolenosi

Okay amigo, vou verificar !!

joaolenosi

Olha aqui estar todas as minhas tabelas, falta criar as duas últimas!

create database locadora;
use locadora;

	tabelas_banco_locadora.sql

create table categoria (
	cod_categoria int not null auto_increment,
	descricao varchar(50),
	primary key(cod_categoria)

);

create table filme(
	cod_filme int not null auto_increment,
	cod_categoria int not null,
	descricao varchar(50),
	ano date null,
	primary key(cod_filme),
	constraint fk_filme_cod_categoria
	foreign key(cod_categoria) 
	references categoria (cod_categoria)
	on delete no action
	on update cascade
);

create table clientes(
	cod_cliente int not null auto_increment,
	nome varchar(100) null,
	telefone varchar(50) null, 
	celular varchar(50) null, 
	email varchar(255) null,
	primary key (cod_cliente)
	
);

create table midia (
	cod_midia int not null auto_increment,
	cod_filme int not null,
	inutilizada char(1) null, 
	primary key(cod_midia),
	constraint fk_midia_cod_filme
	foreign key(cod_filme)
	references filme (cod_filme)
	on delete no action
	on update cascade
);

create table locacao (
	cod_locacao int not null auto_increment,
	cod_cliente int not null,	
	cod_midia int not null, 
	data_emprestimo date null,
	hora_emprestimo time null,
	data_devolucao date null, 
	obs text null, 
	primary key(cod_locacao, cod_cliente, cod_midia),
	constraint fk_locacao_cod_cliente
	foreign key(cod_cliente)
	references cliente (cod_cliente)
	on delete no action
	on update cascade,
	constraint fk_locacao_cod_midia
	foreign key(cod_midia)
	references midia (cod_midia)
	on delete no action
	on update cascade
);



create table endereco (
	cod_cliente int not null, 
	rua varchar(100), 
	numero int null, 
	bairro varchar(100) null,
	cidade varchar(100) null,
	estado char(2) null,
	cep varchar(10) null,
	complemento text null,
	primary key (cod_cliente),
	constraint fk_endereco_cod_cidade
	foreign key (cod_cliente)
	references cliente (cod_cliente)
	on delete no action
	on update cascade
);

Porem estar dando aquele erro.

joaolenosi

Já verifiquei várias vezes se tudo estar correto, e não consigo criar a tabela locação!!

tá dando esse erro

Erro 1005 (HY000): can´t create table 'locadora.locacao' (errno: 150)
joaolenosi

ninguem sabe? já pesquisiei em toda a net, achei informações, mas nenhuma conseguiu resolver meu problema…

=/

joaolenosi

desistooo!!!

A

Cara, não trabalho com MySQL, mas vamo ver melhor isso aí…

Dizem para executar este comando:

SHOW ENGINE INNODB STATUS

depois de obter o erro na criação da tabela. Ele deve dar mais detalhes.

joaolenosi

Ao executar os comandos obtive mais detalhes do erro, olha aÊ

imagem 1
http://imageshack.us/f/37/erro1w.png/

imagem 2
http://imageshack.us/f/37/erro1w.png/

Alguem pode ajudar a resolver?

joaolenosi
Error in foreign key constraint of table locadora/locacao

Veja as images aê!!

A

Finalmente… um pouco mais de atenção e deu pra enxergar

Você criou a tabela clientes e está referenciando na fk como cliente.

O problema é exatamente aqui:

references cliente (cod_cliente)

tem que ser

references clientes (cod_cliente)
joaolenosi

ADEMILTON , obrigado problema 100% resolvido, você é um ninja mesmo!!!

Criado 29 de junho de 2012
Ultima resposta 2 de jul. de 2012
Respostas 13
Participantes 2