在 mySQL 中获取引用和外键错误

Getting error in mySQL for references and foreign key

你好,当我尝试执行我的 sql 代码时,我总是收到这个错误

Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(department.id) )' at line 7 0.015 sec

这是我的代码:

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)
)

如果有人有任何很棒的建议。

我在 windows 上使用 8.0.22 上的 mySQL workbench。感谢您阅读本文!

这是无效的SQL:

FOREIGN KEY(department_id) REFERENCES(department.id)

改为使用:

FOREIGN KEY(department_id) REFERENCES department(id)

即:外键引用<table name>(<column name>)。点符号是其他东西,它在查询中用于引用 table(或派生的 table)的列。

同样的错误在你脚本的所有外键声明中重复出现。

这里是 a db fiddle,其中包含所有必需的更改。