我有类似的问题:How to create foreign key that is also a primary key in MySQL?
但是我的架构似乎与答案匹配,但仍然返回错误“ERROR 1005(HY000):无法创建表(错误号:150)”
CREATE TABLE po_items (
job_id CHAR(3) NOT NULL,
po_id CHAR(3) NOT NULL,
item_id CHAR(3) NOT NULL,
quantity SMALLINT,
PRIMARY KEY (job_id, po_id, item_id),
FOREIGN KEY (job_id, po_id) REFERENCES pos(job_id, po_id)
) ENGINE = INNODB;
CREATE TABLE items (
item_id CHAR(3) NOT NULL,
descr CHAR(10),
on_hand SMALLINT,
price DECIMAL(5,2),
PRIMARY KEY (item_id),
FOREIGN KEY (item_id) REFERENCES po_items(item_id)
) ENGINE = INNODB;
提前致谢
1 回答
要定义
foreign key
,引用的字段必须已编制索引 .根据
foreign key
约束的文档:在表
po_items
中的item_id
上定义INDEX
,它应该正常工作 .Refer to :