Я знаю, что в отношении этой ошибки много вопросов относительно SO, но даже применяя то, что я почерпнул из них, я все равно получаю «не могу создать таблицу (errno: 150) «MySQL errno: 150 невозможно создать таблицу
CREATE TABLE sch_results
(
id INT NOT NULL AUTO_INCREMENT,
s_id INT UNSIGNED NOT NULL,
r_eid VARCHAR(10) NOT NULL,
cohorts INT,
allstudents INT,
comments TEXT,
PRIMARY KEY (id),
FOREIGN KEY (s_id) REFERENCES scholarships (id),
FOREIGN KEY (r_eid) REFERENCES sch_recommenders (eid)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Я проверил, что внешние ключи хранятся точно под этим именем в соответствующих таблицах.
Я проверил, что соответствующие типы данных соответствуют этому запросу. Я проверил, что две существующие таблицы используют InnoDB и utf8.
Я добавил UNSIGNED NOT NULL к внешним ключам.
Я проиндексировал два внешних ключа в их таблицах. Первоначально я использовал s_id и r_id, но слышал, что это может вызвать некоторые проблемы. r_eid также уникален, поэтому я переключился на это. Это не первичный ключ.
Что мне не хватает? Благодаря!
УРОК УЗНАЙТЕ: Тщательно проверьте все аспекты ваших типов данных!
все столбцы имеют одинаковые определения? Каковы стипендии и sch_recommenders? –
стипендии id: длина INT 3 sch_recommenders eid: VARCHAR длина 10 – Beatrice
вы можете показать как стипендии, так и структуру таблицы sch_recommenders? –