为什么我在外键约束上得到MySQL错误1064?

时间:2016-04-26 22:10:10

标签: mysql sql phpmyadmin

CREATE TABLE EMP_1 (
    EMP_NUM varchar(3),
    EMP_LNAME varchar(15),
    EMP_FNAME varchar(15),
    EMP_INITIAL varchar(1),
    EMP_HIREDATE datetime,
    JOB_CODE varchar(3), FOREIGN KEY (JOB_CODE) REFERENCES JOB
);

这是用于创建作为另一个表的子集的表的代码。这是练习的一部分。

  

#1064 - 您的SQL语法出错;检查与您的MySQL服务器版本相对应的手册,以获得正确的语法,以便在'附近使用。参考工作'在第8行

运行查询时是否在PHPMyAdmin中输出错误消息。

第8行的语法是什么?在检查了W3学校和教科书后,我看不出问题。

1 个答案:

答案 0 :(得分:3)

您错过了JOB

上的引用外键列

所以它应该像

FOREIGN KEY (JOB_CODE) REFERENCES JOB(job_code_col)

所以如果你的JOB表还有一个名为JOB_CODE的列,那么DDL将如下所示:

CREATE TABLE EMP_1 (
    EMP_NUM varchar(3),
    EMP_LNAME varchar(15),
    EMP_FNAME varchar(15),
    EMP_INITIAL varchar(1),
    EMP_HIREDATE datetime,
    JOB_CODE varchar(3), FOREIGN KEY (JOB_CODE) REFERENCES JOB (JOB_CODE)
);