Код ошибки: 1822. Не удалось добавить ограничение внешнего ключа. Отсутствует индекс для ограничения 'project_ibfk_1' в ссылочной таблице 'Works' - PullRequest
0 голосов
/ 22 марта 2020

Не уверен, почему получаю эту ошибку

CREATE TABLE Works(
SSN int,
ProjName varchar(255),
ProjNum int,
DeptNum int,
PRIMARY KEY (SSN,ProjName,ProjNum),
FOREIGN KEY (SSN) REFERENCES Employee(SSN),
FOREIGN KEY (DeptNum) REFERENCES Department(DeptNum)
);

CREATE TABLE Project(
ProjName varchar(255),
ProjNum int,
ProjDesc varchar(255),
PRIMARY KEY (ProjName,ProjNum),
FOREIGN KEY (ProjName) REFERENCES Works(ProjName),
FOREIGN KEY (ProjNum) REFERENCES Works(ProjNum)
);

Ошибка

Код ошибки: 1822. Не удалось добавить ограничение внешнего ключа. Отсутствует индекс для ограничения 'project_ibfk_1' в ссылочной таблице 'Works'

select * from Employee where Address = 'new york'
in (select * from Employee where DOB= '01012012');

select * from Employee where Address = 'new york'
not in (select * from Employee where DOB= '010120120');

Код ошибки: 1241. Операнд должен содержать 1 столбец (столбцы)

1 Ответ

0 голосов
/ 22 марта 2020

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

Создание отдельного внешнего ключа для каждого столбца не совпадает.

Вы также можете захотеть прочитайте этот контрольный список для внешних ключей: { ссылка }

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...