MySQL создает таблицу ошибок

Я получаю эту ошибку при попытке создать таблицу

ОШИБКА 1064 (42000): у вас ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса, который можно использовать рядом со словом "не ноль", "ПЕРВИЧНЫЙ КЛЮЧ (nomeA)", "ИНОСТРАННЫЙ КЛЮЧ (nomeA)". Ссылки Alimento (nomeA)) "в строке 4

и вот код

create table Alimento
    (nomeA varchar(255) not null unique,
    vegetariano tinyint(1) not null,
    PRIMARY KEY(nomeA));

create table Simples
    (nomeA varchar(255) not null,
    calgramas numeric(5,2) not null,
    tipo varchar not null,
    PRIMARY KEY(nomeA),
    FOREIGN KEY(nomeA) REFERENCES Alimento(nomeA));


create table Agregado
    (nomeA varchar(255) not null,
    calorias numeric(5,2) not null,
    PRIMARY KEY(nomeA),
    FOREIGN KEY(nomeA) REFERENCES Alimento(nomeA));

3 ответа

Решение

Вы забыли длину вашего tipo колонка

tipo varchar(100) not null
            ^^^^^---------------add something like this

Если вы используете инструмент SQL, такой как Mysql Workbench, такие ошибки будут выделены и их легко найти.

Попробуй это

create table Alimento
    (nomeA varchar(255) not null unique primary key,
    vegetariano tinyint(1) not null);

Кроме того, я бы порекомендовал идентификатор поля INT в качестве первичного ключа, это облегчит работу, если проект будет расти...

tipo varchar(20) not null

and would like to suggest that for table Alimento you have already used primary key for nomeA then no need to define it as not null unique
Другие вопросы по тегам