Jump to content
carvalho2707

my SQL error a criar tabelas

Recommended Posts

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

Edited by Rui Carlos
GeSHi

Share this post


Link to post
Share on other sites
HappyHippyHippo

o priemiro erro que vi foi este:

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


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
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';

Edited by carvalho2707

Share this post


Link to post
Share on other sites
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 :)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.