我必須創建包含所有這些組合鍵的表。SQL無法創建表(errno:150)
前景(CUSTNAME,carmake,carmodel,caryear,carextcolour,cartrim,optioncode)
上述的所有字段被下劃線,以顯示它們是伯。所以7個主要組合鍵。
由於某些原因,這不會創建表格。
CREATE TABLE prospect
(Custname VARCHAR(25) NOT NULL,
Carmake VARCHAR(25) NOT NULL,
Carmodel VARCHAR(20) NOT NULL,
Caryear VARCHAR(4) NOT NULL,
Carextcolour VARCHAR(10) NOT NULL,
Cartrim VARCHAR(10) NOT NULL,
Optioncode CHAR(4),
CONSTRAINT pkprospect PRIMARY KEY (Custname, Carmake, Carmodel, Caryear, Carextcolour, Cartrim, Optioncode),
CONSTRAINT fkprospect FOREIGN KEY (Custname) REFERENCES customer(Custname),
CONSTRAINT fk2prospect FOREIGN KEY (Carmake) REFERENCES car(Carmake),
CONSTRAINT fk3prospect FOREIGN KEY (Carmodel) REFERENCES car(Carmodel),
CONSTRAINT fk4prospect FOREIGN KEY (Caryear) REFERENCES car(Caryear),
CONSTRAINT fk5prospect FOREIGN KEY (Carextcolour) REFERENCES car(Carextcolour),
CONSTRAINT fk6prospect FOREIGN KEY (Cartrim) REFERENCES car(Cartrim),
CONSTRAINT fk7prospect FOREIGN KEY (Optioncode) REFERENCES optiontable(Optioncode)
);
我正在使用的代碼來創建此表充滿組合鍵。
我不知道mySQL,但在一些RDBMS中,不允許有一個複合主鍵,其中一個字段可以爲空;應該'選項代碼'是否'不爲空'?另外,您可以將FK參考文件合併到一輛車中。 –
它對我來說運行良好。它創建了表格(我正在使用Mysql Workbench) – PCM
@PCM你是怎麼做到的?你有「汽車」桌子的桌子定義嗎? –