我正在使用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:无法添加外键约束
我检查过数据库引擎是否相同,字符集和数据类型。
我做错了什么?
答案 0 :(得分: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表中引用。
答案 1 :(得分:0)