首页 文章

在mysql中添加外键和引用键时出错[duplicate]

提问于
浏览
0

这个问题在这里已有答案:

我有两个表 PlanePlaneType .

CREATE TABLE Plane 
(
    ID INT,
    Maker VARCHAR(30),
    Model VARCHAR(30),
    LastMaint VARCHAR(30),
    LastMaintA VARCHAR(3),

    PRIMARY KEY (ID)
) ENGINE = INNODB;

CREATE TABLE PlaneType (
    Maker VARCHAR(30),
    Model VARCHAR(30),

    PRIMARY KEY (Maker, Model)
    ) ENGINE = INNODB;

插入这两个表后,我添加以下外键和主键:

ALTER TABLE Plane ADD FOREIGN KEY (Maker) REFERENCES PlaneType(Maker);
ALTER TABLE Plane ADD FOREIGN KEY (Model) REFERENCES PlaneType(Model);

第一个 ALTER 工作得很好,但第二个给了我错误:

ERROR 1005 (HY000): Can't create table '----.frm' (errno: 150)

我无法弄清楚为什么第一个 ALTER 完美地运作,而第二个't. Both are references to primary keys, and that'是我能想到的唯一问题 . 我是一个mysql noob,所以它可能是非常明显的东西 .

任何帮助表示赞赏,提前谢谢 .

1 回答

  • 1

    试试这个 SHOW ENGINE INNODB STATUS 并查找 LATEST FOREIGN KEY ERROR 以获取特定错误 .

    但我确实认为这是索引的问题 . 您的主键由Maker和Model组成 . 在Model上创建索引,将创建FK .

相关问题