синтаксическая ошибка в моих SQL-запросах

0

У меня есть синтаксическая ошибка в моих SQL-запросах, что не так?

это запрос:

    CREATE TABLE post_cat(
    cat_id int(2) AUTO_INCREMENT NOT null PRIMARY key,
    cat_text varchar(255),
    post_cat varchar,
    FOREIGN KEY (post_cat) REFERENCES post(post_cat)
    )
Теги:
syntax-error

2 ответа

3

Для всех варчаров требуется спецификация длины.

CREATE TABLE post_cat(
cat_id int(2) AUTO_INCREMENT NOT null PRIMARY key,
cat_text varchar(255),
post_cat varchar(1000),
FOREIGN KEY (post_cat) REFERENCES post(post_cat)
);
  • 0
    теперь у меня есть новая ошибка, MySQL сказал: Документация # 1005 - Невозможно создать табличную telegram . post_cat (errno: 150 «Ограничение внешнего ключа сформировано неправильно») (Подробности…)
2

Вам нужна длина для varchar:

CREATE TABLE post_cat (
    cat_id int(2) AUTO_INCREMENT NOT null PRIMARY key,
    cat_text varchar(255),
    post_cat varchar(255),
    FOREIGN KEY (post_cat) REFERENCES post(post_cat)
);

Длина должна соответствовать определению в post таблице.

Вот скрипт SQL, показывающий создание таблицы.

  • 0
    теперь у меня есть новая ошибка, MySQL сказал: Документация # 1005 - Невозможно создать табличную telegram . post_cat (errno: 150 «Ограничение внешнего ключа сформировано неправильно») (Подробности…)
  • 0
    post_cat кажется действительно странным первичным ключом для таблицы с именем post . Тем не менее, код работает с правильными определениями столбцов, как показано в скрипте SQL.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню