У меня возникает эта проблема, когда я пытаюсь создать два внешних ключа в одной таблице, как я могу это исправить, и спасибо
create table employee(
employeeNumber INT (11) primary key,
);
create table projects(
projectNumber INT(11) primary key ,
);
create table workat(
wemployeeNumber INT(11),
wprojectNUmber INT (11),
primary key (wemployeeNumber,wprojectNUmber),
FOREIGN key workat(wemployeeNumber) references employee(employeeNumber),
FOREIGN key workat(wprojectNUmber) references projects(projectNumber)
);






Мне кажется, что ваш синтаксис FOREIGN KEY не нравится, и я не знаю, зачем вы оборачиваете определение в workat. Попробуйте эту версию:
CREATE TABLE workat (
wemployeeNumber INT(11),
wprojectNUmber INT(11),
PRIMARY KEY (wemployeeNumber, wprojectNumber),
FOREIGN KEY (wemployeeNumber) REFERENCES employee (employeeNumber),
-- projects, not project
FOREIGN KEY (wprojectNUmber) REFERENCES projects (projectNumber)
);
Вот демонстрация, показывающая, что ваш код компилируется после внесения вышеуказанных изменений:
создать таблицу workat (wemployeeNumber INT (11), wprojectNUmber INT (11), первичный ключ (wemployeeNumber, wprojectNUmber), ВНЕШНИЙ ключ wemployeeNumber ссылается на сотрудника (employeeNumber), ВНЕШНИЙ ключ wprojectNUmber ссылается на проект (projectNumber)); не сработало
@riadhgazouna ... и ... что случилось потом?
@TimBiegeleisen В его примере есть еще 2 опечатки, ваш ответ повторяет одну из них, в остальном он идеален. Плюс один к вам, и пусть он сам выследит его.
@Tim Biegeleisen эта ошибка # 1005 - Невозможно создать таблицу company.workat (ошибка: 150 «Ограничение внешнего ключа сформировано неправильно») (Подробности…)
@riadhgazouna Проверьте мою демонстрацию на рабочий пример. У вас также есть паразитные запятые в первых двух операторах создания таблицы.
С какой именно проблемой вы столкнулись? :-)