在 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,其中包含所有必需的更改。
你好,当我尝试执行我的 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,其中包含所有必需的更改。