首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在创建表时不能在MySQL中创建外键约束,但语法与其他外键相同

问在创建表时不能在MySQL中创建外键约束,但语法与其他外键相同
EN

Stack Overflow用户
提问于 2021-04-10 13:13:24
回答 1查看 24关注 0票数 0

目前,我很难理解为什么第一个MySQL代码不适用于位置外键。同时,当我将反勾号添加到位置时,它允许创建表。

我搜索了职位是否是MySQL的保留词,但没有发现任何提到它是一个保留词。

所以我想知道有没有人知道为什么不起作用。

代码语言:javascript
复制
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)
);
代码语言:javascript
复制
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)
);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-10 14:15:08

代码语言:javascript
复制
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

这个错误是因为职位()是一个函数。

代码语言:javascript
复制
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.html
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67034743

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档