Получение ошибки в mySQL для ссылок и внешнего ключа

привет, я продолжаю получать эту ошибку, когда пытаюсь выполнить свой фрагмент кода sql

Код ошибки: 1064. У вас ошибка в синтаксисе SQL; проверить руководство, соответствующее вашей версии сервера MySQL, на право синтаксис для использования рядом с '(department.id))' в строке 7 0,015 сек.

вот мой код:

DROP DATABASE IF EXISTS employee_db;

CREATE DATABASE employee_db;

USE employee_db;

CREATE TABLE department(
id INTEGER NOT NULL auto_increment,
name VARCHAR(30),
PRIMARY KEY(id)
);

CREATE TABLE roles(
id INTEGER NOT NULL auto_increment,
title VARCHAR(30),
salary DECIMAL,
department_id INTEGER,
PRIMARY KEY(id),
FOREIGN KEY(department_id) REFERENCES(department.id)
);

CREATE TABLE employee(
id INTEGER NOT NULL auto_increment,
first_name VARCHAR(30),
last_name VARCHAR(30),
role_id INTEGER,
manager_id INTEGER,
FOREIGN KEY(manager_id) REFERENCES(employee.id),
PRIMARY KEY(id),
FOREIGN KEY(role_id) REFERENCES(roles.id)
)

если у кого-то есть какие-либо предложения, которые были бы потрясающими.

я использую рабочее место mySQL на 8.0.22 на окнах. спасибо, если читаете это!

Освоение архитектуры микросервисов с 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
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
2
0
1 210
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это недействительный SQL:

FOREIGN KEY(department_id) REFERENCES(department.id)

Вместо этого используйте:

FOREIGN KEY(department_id) REFERENCES department(id)

То есть: ссылки на внешний ключ <table name>(<column name>). Точечная нотация — это что-то еще, что используется в запросах для ссылки на столбец таблицы (или производной таблицы).

Та же ошибка повторяется во всех объявлениях внешних ключей вашего скрипта.

Вот скрипт БД со всеми необходимыми изменениями.

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