MySQL FK错误1005-主键与FK相同
我有一个类似的问题: 但是,我的模式似乎与答案匹配,但仍然返回错误“error 1005(HY000):无法创建表(errno:150)”MySQL FK错误1005-主键与FK相同,mysql,sql,foreign-keys,primary-key,Mysql,Sql,Foreign Keys,Primary Key,我有一个类似的问题: 但是,我的模式似乎与答案匹配,但仍然返回错误“error 1005(HY000):无法创建表(errno:150)” 感谢您提前定义一个外键,引用的字段必须已索引 根据外键约束的文档: 参考tbl_名称(索引col_名称,…) 在表po\u items中的item\u id上定义一个索引,该索引应该有效 CREATE TABLE po_items ( job_id CHAR(3) NOT NULL, po_id CHAR(3) NOT
感谢您提前定义一个
外键,引用的字段必须已索引
根据外键
约束的文档:
参考tbl_名称(索引col_名称,…)
在表po\u items
中的item\u id
上定义一个索引
,该索引应该有效
CREATE TABLE po_items (
job_id CHAR(3) NOT NULL,
po_id CHAR(3) NOT NULL,
item_id CHAR(3) NOT NULL,
quantity SMALLINT,
KEY (item_id),
PRIMARY KEY (job_id, po_id, item_id),
FOREIGN KEY (job_id, po_id) REFERENCES pos(job_id, po_id)
) ENGINE = INNODB;
请参阅:
[约束[符号]]外键
[index\u name](index\u col\u name,…)
参考tbl\U名称(索引列名称,…)
[在删除参考_选项上]
[关于更新参考_选项]
参考选项:
限制|级联|设置为空|无操作
非常感谢Ravinder-我没有得到前面问题中的“关系参考”,这对我来说更清楚了
CREATE TABLE po_items (
job_id CHAR(3) NOT NULL,
po_id CHAR(3) NOT NULL,
item_id CHAR(3) NOT NULL,
quantity SMALLINT,
KEY (item_id),
PRIMARY KEY (job_id, po_id, item_id),
FOREIGN KEY (job_id, po_id) REFERENCES pos(job_id, po_id)
) ENGINE = INNODB;