Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #58 da revista programar. Faz já o download aqui!

carvalho2707

my SQL error a criar tabelas

Mensagens Recomendadas

carvalho2707    0
carvalho2707

drop table Encomenda;
drop table Cliente;
drop table Venda;
drop table Disponivel;
drop table Data;
drop table Restaurante;
drop table Prato;
drop table Agregado;
drop table Simples;
drop table Alimento;
create table Alimento(
 nomeA varchar(30),
 vegetariano varchar(30),
 primary key (nomeA));
create table Simples(
 nomeA varchar(30),
 calgramas double,
 tipo varchar(30),
 primary key (nomeA),
 foreign key (nomeA) references Alimento(nomeA));

create table Agregado(
 nomeA varchar(30),
 calorias double,
 primary key (nomeA),
 foreign key (nomeA) references Alimento(nomeA));
create table Composto(
 nomeAgg varchar(30),
 nomeS varchar(30),
 quantidade integer,
 primary key(nomeAgg,nomeS),
 foreign key(nomeAgg) references Agregado(nomeAgg),
 foreign key(nomeS) references Simples(nomeS));

alguem me consegue explicar porque e' que isto da este erro :

ERROR 1005 (HY000): Can't create table 'ist170438.Composto' (errno: 150)

ERROR 1239 (42000): Incorrect foreign key definition for 'foreign key without name': Key reference and table reference don't match

ja li linha a linha e tudo me parece bem

Editado por Rui Carlos
GeSHi

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
HappyHippyHippo    1139
HappyHippyHippo

o priemiro erro que vi foi este:

foreign key(nomeS) references Simples(nomeS));
--                                     A
--                                     |
--                               que coluna é esta ?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
carvalho2707    0
carvalho2707

ja consegui resolver esse problema.. nao sabia que a chave estrangeira tinha de ter o atributo no references..

agora tenho outro problema.. fui ver ao livro que comprei e a notacao esta correcta, mas a bd retorna erro :/ conseguem me explicar porque?

select A.nomeA
from Alimento A
except
select A1.nomeA
from Alimento A1
where A1.vegetariano = 'sim';

Editado por carvalho2707

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Rui Carlos    312
Rui Carlos

Penso que o MySQL não suporta o EXCEPT.

Por acaso o que tu queres não é isto?

select A.nomeA
   from Alimento A
   where A1.vegetariano <> 'sim';

Já agora, quando obténs erros, convém dizer quais são :)

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.