目前,我很难理解为什么第一个MySQL代码不适用于位置外键。同时,当我将反勾号添加到位置时,它允许创建表。
我搜索了职位是否是MySQL的保留词,但没有发现任何提到它是一个保留词。
所以我想知道有没有人知道为什么不起作用。
CREATE TABLE Employee (
IDEmployee INT AUTO_INCREMENT UNIQUE NOT NULL ,
IDPosition INT NOT NULL,
IDPerson INT NOT NULL,
EmployeeNumber VARCHAR(25) NOT NULL,
Username VARCHAR(25) NOT NULL,
Password VARCHAR(256) NOT NULL,
PRIMARY KEY (IDEmployee),
FOREIGN KEY (IDPosition) REFERENCES Position(IDPosition),
FOREIGN KEY (IDPerson) REFERENCES Person(IDPerson)
);CREATE TABLE Employee (
IDEmployee INT AUTO_INCREMENT UNIQUE NOT NULL ,
IDPosition INT NOT NULL,
IDPerson INT NOT NULL,
EmployeeNumber VARCHAR(25) NOT NULL,
Username VARCHAR(25) NOT NULL,
Password VARCHAR(256) NOT NULL,
PRIMARY KEY (IDEmployee),
FOREIGN KEY (IDPosition) REFERENCES `Position`(IDPosition),
FOREIGN KEY (IDPerson) REFERENCES Person(IDPerson)
);发布于 2021-04-10 14:15:08
mysql> CREATE TABLE Employee (
-> IDEmployee INT AUTO_INCREMENT UNIQUE NOT NULL ,
-> IDPosition INT NOT NULL,
-> IDPerson INT NOT NULL,
-> EmployeeNumber VARCHAR(25) NOT NULL,
-> Username VARCHAR(25) NOT NULL,
-> Password VARCHAR(256) NOT NULL,
-> PRIMARY KEY (IDEmployee),
-> FOREIGN KEY (IDPosition) REFERENCES Position(IDPosition),
-> FOREIGN KEY (IDPerson) REFERENCES Person(IDPerson)
-> );
ERROR 1064 (42000): 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 'Position(IDPosition),
FOREIGN KEY (IDPerson) REFERENCES Person(IDPerson)
)' at line 9这个错误是因为职位()是一个函数。
mysql> help position;
Name: 'POSITION'
Description:
Syntax:
POSITION(substr IN str)
POSITION(substr IN str) is a synonym for LOCATE(substr,str).
URL: https://dev.mysql.com/doc/refman/8.0/en/string-functions.htmlhttps://stackoverflow.com/questions/67034743
复制相似问题