У меня есть синтаксическая ошибка в моих 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)
)
Для всех варчаров требуется спецификация длины.
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)
);
Вам нужна длина для 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, показывающий создание таблицы.
telegram
. post_cat
(errno: 150 «Ограничение внешнего ключа сформировано неправильно») (Подробности…)
post_cat
кажется действительно странным первичным ключом для таблицы с именем post
. Тем не менее, код работает с правильными определениями столбцов, как показано в скрипте SQL.
telegram
.post_cat
(errno: 150 «Ограничение внешнего ключа сформировано неправильно») (Подробности…)