Я сталкиваюсь с ошибкой при создании таблицы между следующими двумя операторами
CREATE TABLE SECTION (
cid varchar(10) not null,
sno varchar(3) not null,
primary key (cid, sno),
foreign key (cid) references COURSE (cid)
);
CREATE TABLE ROUND_RELEASE (
cid varchar(10) not null,
sno varchar(3) not null,
rid int not null,
foreign key (cid) references SECTION (cid),
foreign key (sno) references SECTION (sno),
foreign key (rid) references ROUND (rid)
);
Код ошибки: 1822. Не удалось добавить ограничение внешнего ключа. Отсутствует индекс для ограничения 'round_release_ibfk_2' в ссылочной таблице 'section'
Однако, когда я пытаюсь поменять порядок первичного ключа в таблице SECTION, я могу создать обе таблицы без ошибки
CREATE TABLE SECTION (
cid varchar(10) not null,
sno varchar(3) not null,
primary key (**sno, cid**),
foreign key (cid) references COURSE (cid)
);
CREATE TABLE ROUND_RELEASE (
cid varchar(10) not null,
sno varchar(3) not null,
rid int not null,
foreign key (cid) references SECTION (cid),
foreign key (sno) references SECTION (sno),
foreign key (rid) references ROUND (rid)
);
Следующий код работает, и я только поменяю атрибут, насколько мне известно, порядок не имеет значения, поэтому я весьма озадачен, почему это происходит.
Любые указания по этому ? Спасибо!