2013-11-08 5 views
0

я пытаюсь создать некоторую БД, но я получаю эту ошибку: ERROR 1005 (HY000): Невозможно создать таблицу 'ist170438.Composto' (ошибка: 150)ошибки 1005 при создании таблицы

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

Может ли кто-нибудь помочь мне найти эру? я не могу понять, что не так

+2

Это, вероятно, потому, что таблица Composto существует, и вы забыли ее бросить. – Hussain

+0

Поле nomeS не существует в Simples. – Damodaran

+0

Да @ Дамодаран тоже. См. Http://stackoverflow.com/questions/825362/mysql-error-150-foreign-keys – Hussain

ответ

0

Разве ваш последний стол не должен быть таким?

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) 
); 
Смежные вопросы