привет, я продолжаю получать эту ошибку, когда пытаюсь выполнить свой фрагмент кода 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 на окнах. спасибо, если читаете это!
Это недействительный SQL:
FOREIGN KEY(department_id) REFERENCES(department.id)
Вместо этого используйте:
FOREIGN KEY(department_id) REFERENCES department(id)
То есть: ссылки на внешний ключ <table name>(<column name>)
. Точечная нотация — это что-то еще, что используется в запросах для ссылки на столбец таблицы (или производной таблицы).
Та же ошибка повторяется во всех объявлениях внешних ключей вашего скрипта.
Вот скрипт БД со всеми необходимыми изменениями.