我有兩個表Plane
和PlaneType
。在mysql中添加外鍵和引用鍵時遇到錯誤
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
完美的作品,第二個沒有。兩者都是對主鍵的引用,這是我能想到的唯一問題。我是一個mysql noob,所以它可能是非常明顯的東西。
任何幫助表示讚賞,在此先感謝。
在標記爲dupe之前即將回答:如果您將'PlaneType'的PK稱爲'AUTO_INCREMENT INT'列,例如'plane_type_id',則可以避免使用'maker'和'model'。然後'Plane'將有一個'plane_type_id',可用於'PlaneType'上的'JOIN'來拉制造商和模型。 – Terminus
感謝您的建議,我也會試一試。 – Kenshin