Получение
Код ошибки: 1822. Не удалось добавить ограничение внешнего ключа. Отсутствует
индекс для ограничения 'subject_ibfk_1' в ссылочной таблице
'Регистрация'
при попытке создать таблицу subject
. Проблема в том, что ошибка не возникает в предыдущей таблице student
. Типы данных одинаковы, а первичные ключи определены.
Эта ошибка возникает для таблиц enrolment
и grade
.
create table enrolment(
stud_id char(9) not null,
subj_code char(8) not null,
semester tinyint unsigned not null,
year smallint unsigned not null,
comment text,
primary key (stud_id, subj_code, semester, year)
);
create table grade(
stud_id char(9) not null,
subj_code char(8) not null,
semester tinyint unsigned not null,
year smallint unsigned not null,
grade tinyint unsigned,
primary key (stud_id, subj_code, semester, year)
);
create table student(
stud_id char(9) not null,
stud_name char(30),
stud_phone char(12),
stud_date_of_birth date,
stud_city char(26),
stud_address char(30),
stud_postcode char(4),
primary key (stud_id),
foreign key (stud_id)
references grade(stud_id),
foreign key (stud_id)
references enrolment(stud_id)
);
create table subject(
subj_code char(8) not null,
subj_title char(40),
primary key (subj_code),
foreign key (subj_code)
references enrolment(subj_code),
foreign key (subj_code)
references grade(subj_code)
);