我正在用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/