0

i'm trying to create some db but i get this error : ERROR 1005 (HY000): Can't create table 'ist170438.Composto' (errno: 150)

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));

can anyone help me finding the eror? i cant understand what is wrong

tiagocarvalho92
  • 375
  • 1
  • 7
  • 17

1 Answers1

0

Shouldn't your last table be like this?

CREATE TABLE Composto (
  nomeAgg varchar(30),
  nomeS varchar(30),
  quantidade integer,
  PRIMARY KEY (nomeAgg, nomeS),
  FOREIGN KEY (nomeAgg) REFERENCES Agregado (nomeA),
  FOREIGN KEY (nomeS) REFERENCES Simples (nomeA)
);
Devart
  • 119,203
  • 23
  • 166
  • 186