Я создаю несколько простых таблиц, и я не могу получить эту ошибку внешнего ключа, и я не уверен, почему. Вот сценарий ниже.MySQL Errno 150
create TABLE Instructors (
ID varchar(10),
First_Name varchar(50) NOT NULL,
Last_Name varchar(50) NOT NULL,
PRIMARY KEY (ID)
);
create table Courses (
Course_Code varchar(10),
Title varchar(50) NOT NULL,
PRIMARY KEY (Course_Code)
);
create table Sections (
Index_No int,
Course_Code varchar(10),
Instructor_ID varchar(10),
PRIMARY KEY (Index_No),
FOREIGN KEY (Course_Code) REFERENCES Courses(Course_Code)
ON DELETE cascade
ON UPDATE cascade,
FOREIGN KEY (Instructor_ID) REFERENCES Instructors(ID)
ON DELETE set default
);
Код ошибки: 1005. Невозможно создать таблицу '336_project.sections' (ошибка: 150)
Мои типы данных кажутся одинаковыми и синтаксис кажется правильным. Может ли кто-нибудь указать, что я здесь не вижу?
Я использую MySQL Workbench 5.2
Привет, спасибо за ваш быстрый ответ. Я попытался перейти на SET NULL, и он все еще не работает. Я даже удалил все строки ON UPDATE/DELETE и все еще выдал мне ошибку. Должен ли я указывать конкретный движок для использования? – Sixers17
Не обращайте внимания на последний комментарий, я исправил его. Вы были правы, мне пришлось изменить значение по умолчанию на null, но также я создал индексы для каждой ссылки внешнего ключа. Как только я это сделал, он сработал! – Sixers17
@ Sixers17 - именно так вы знаете, когда я попробовал свои инструкции 'CREATE TABLE', единственное, что я должен был сделать, чтобы заставить их работать, это изменить на' ON DELETE SET NULL'. Мне не нужно было добавлять индексы. Тем не менее, неплохо иметь индексы вдоль ваших FK в любом случае, так что все хорошо :) –