2017-05-25 110 views
0

我在做SQL中的任務,我試圖在引用表的total表上添加一個外鍵。錯誤代碼1215:無法添加外鍵約束?

我的代碼:

CREATE TABLE DONUTS (
DonutID integer not null unique, 
Donut_name varchar(35) not null, 
Description varchar(35) not null, 
Donut_Qty integer not null, 
Donut_price decimal not null, 
PRIMARY KEY(DonutID, Donut_Qty, Donut_price)); 

CREATE TABLE TOTAL (
LINE_TOTAL Decimal NOT NULL UNIQUE, 
Donut_Qty integer NOT NULL, 
Donut_price decimal NOT NULL, 
PRIMARY KEY (LINE_TOTAL), 
FOREIGN KEY (Donut_Qty) REFERENCES donuts(Donut_Qty), 
FOREIGN KEY (Donut_price) REFERENCES donuts(Donut_price)); 

我得到這個錯誤:

Error Code 1215: cannot add foreign key constraint

我檢查了數據庫引擎是一樣的,和字符集和數據類型。

我在做什麼錯?

回答

0
CREATE TABLE DONUTS (
    DonutID integer not null unique, 
    Donut_name varchar(35) not null, 
    Description varchar(35) not null, 
    Donut_Qty integer not null, 
    Donut_price decimal not null, 
    PRIMARY KEY(DonutID, Donut_Qty, Donut_price) 
);  

CREATE TABLE TOTAL (
    LINE_TOTAL Decimal NOT NULL UNIQUE, 
    DonutID integer not null, Donut_Qty integer NOT NULL, 
    Donut_price decimal NOT NULL, PRIMARY KEY (LINE_TOTAL), 
    FOREIGN KEY (DonutID, Donut_Qty, Donut_price) REFERENCES DONUTS(DonutID, Donut_Qty, Donut_price) 
); 

您在DONUTS表中的複合主鍵有三個字段:DonutID,Donut_Qty,Donut_price。組成組合鍵的三個字段假設在TOTAL表中被引用。

0

Mysql requires an explicit unique key (or primary key) on any column referenced as a foreign key in another table.

請參閱本link

您提供non primary keyforeign key這是行不通的。

相關問題