无法在MySQL中创建外键

时间:2015-03-24 11:37:46

标签: mysql database

我有两个create table语句,第二个表实现了一个外键。出于某种原因,我收到#1064错误。

CREATE TABLE position (
 id INT(3)  AUTO_INCREMENT PRIMARY KEY,

 job_description VARCHAR(100) NOT NULL,

)  

CREATE TABLE employee (    
    empNO INT(3)  AUTO_INCREMENT PRIMARY KEY,

    First_Name VARCHAR(50) NOT NULL,

    Last_Name VARCHAR(50) NOT NULL,

    isLoyal INT (5),

    PositionID INT(3) NOT NULL,

    Foreign Key (PositionID) REFERENCES position(id)       
    )

2 个答案:

答案 0 :(得分:0)

您在每个语句上都缺少关闭分号,并且在此行后面有一个尾随逗号:

job_description VARCHAR(100) NOT NULL,不应该在那里。

这可能是此错误的最佳资源:How can I fix MySQL error #1064?

答案 1 :(得分:0)

POSITION是mysql中的预定义关键字,这就是你遇到错误的原因。

CREATE TABLE position1 (
 id INT(3)  AUTO_INCREMENT PRIMARY KEY,

 job_description VARCHAR(100) NOT NULL,

)   




CREATE TABLE employee (    
        empNO INT(3)  AUTO_INCREMENT PRIMARY KEY,

        First_Name VARCHAR(50) NOT NULL,

        Last_Name VARCHAR(50) NOT NULL,

        isLoyal INT (5),

        PositionID INT(3) NOT NULL,

        FOREIGN KEY (PositionID) REFERENCES position1(id)      
        )