ErrNo 150 mySQL

У меня возникает эта проблема, когда я пытаюсь создать два внешних ключа в одной таблице, как я могу это исправить, и спасибо

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) 

);

С какой именно проблемой вы столкнулись? :-)

Philipp Maurer 13.03.2018 13:38
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
0
1
18
1

Ответы 1

Мне кажется, что ваш синтаксис 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)); не сработало

riadh gazouna 13.03.2018 12:35

@riadhgazouna ... и ... что случилось потом?

Tim Biegeleisen 13.03.2018 12:35

@TimBiegeleisen В его примере есть еще 2 опечатки, ваш ответ повторяет одну из них, в остальном он идеален. Плюс один к вам, и пусть он сам выследит его.

Paul Campbell 13.03.2018 13:04

@Tim Biegeleisen эта ошибка # 1005 - Невозможно создать таблицу company.workat (ошибка: 150 «Ограничение внешнего ключа сформировано неправильно») (Подробности…)

riadh gazouna 13.03.2018 13:39

@riadhgazouna Проверьте мою демонстрацию на рабочий пример. У вас также есть паразитные запятые в первых двух операторах создания таблицы.

Tim Biegeleisen 13.03.2018 14:11

Другие вопросы по теме