Mysql 如何从复合密钥生成外键?
我想从主键生成外键,但出现错误“#1005-无法创建表” 这是使用的DDLMysql 如何从复合密钥生成外键?,mysql,ddl,Mysql,Ddl,我想从主键生成外键,但出现错误“#1005-无法创建表” 这是使用的DDL CREATE TABLE Invoice ( InvoiceID SMALLINT, TaskID SMALLINT, FOREIGN KEY Invoice(InvoiceID) REFERENCES XTABLE(InvoiceID), PRIMARY KEY (InvoiceID, TaskID) ); 确保XTABLE和Invoice中的键列标记为主键和非空 CREATE TABLE XTABLE(Invoic
CREATE TABLE Invoice
(
InvoiceID SMALLINT,
TaskID SMALLINT,
FOREIGN KEY Invoice(InvoiceID) REFERENCES XTABLE(InvoiceID),
PRIMARY KEY (InvoiceID, TaskID)
);
确保
XTABLE
和Invoice
中的键列标记为主键
和非空
CREATE TABLE XTABLE(InvoiceID SMALLINT NOT NULL, PRIMARY KEY(InvoiceID));
CREATE TABLE Invoice (
InvoiceID SMALLINT NOT NULL,
TaskID SMALLINT NOT NULL,
PRIMARY KEY (InvoiceID, TaskID),
CONSTRAINT FOREIGN KEY Invoice(InvoiceID) REFERENCES XTABLE(InvoiceID)
);
SQL FIDDLE:这是整个错误消息吗?您是否尝试了外键InoviceID而不是外键发票(InvoiceID)?或者在InvoiceID SMALLINT之后直接写入引用XTABLE(InvoiceID)?Show
CREATE TABLE XTABLE…
问题标题提到了一个复合键,但外键只使用了一列:InvoiceID
:-?