Код ошибки: 1822. Не удалось добавить ограничение внешнего ключа. Отсутствует индекс ограничения «hod_ibfk_1» в таблице, на которую ссылается «студент1», 0,000 сек?

#mysql

Вопрос:

 create table Hod(
 BranchId int(5),
 Branch varchar(10),
 Hod_Name varchar(10),
 Hod_number int(15),
 foreign key (BranchId) references student1(BranchId)
);
 

Комментарии:

1. Вы просмотрели прекрасные руководства? Вам нужен индекс поля, для которого вы хотите применить внешний ключ. В этом случае, BranchId в Student1.

2. Вы должны опубликовать инструкцию create table для student1 таблицы, а не Hod для таблицы дважды

3. CREATE UNIQUE INDEX idx_name ON student1 (BranchId);

4. Пожалуйста, предоставьте достаточно кода, чтобы другие могли лучше понять или воспроизвести проблему.

Ответ №1:

Добавьте индекс в поле, на которое ссылается ссылка, перед созданием внешнего ключа:

 alter table student1 add index(BranchId);

create table Hod(
 BranchId int(5),
 Branch varchar(10),
 Hod_Name varchar(10),
 Hod_number int(15),
 foreign key (BranchId) references student1(BranchId)
);