我正在用SQL进行赋值,并且试图在引用total表的donuts表上添加外键。

我的代码:

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));


我收到此错误:


  错误代码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,
    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表中被引用。

关于mysql - 错误代码1215:无法添加外键约束?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44171607/

10-09 00:35