我有两张表,它们应该通过关系相互连接。我在 MySQL Workbench 中创建了一个模型,但出现错误。在我看来,经过一些测试,我发现了一些奇怪的东西。
我要创建的表(失败并显示 errno: 150):
CREATE TABLE IF NOT EXISTS `info_paginas` (
`id` INT(10) NOT NULL ,
`revision` DECIMAL(10,1) NOT NULL ,
PRIMARY KEY (`id`, `revision`))
ENGINE = InnoDB;
CREATE TABLE IF NOT EXISTS `pages_roles` (
`revision` DECIMAL(10,1) NOT NULL ,
PRIMARY KEY (`revision`),
CONSTRAINT `fk_pages_roles_info_paginas2`
FOREIGN KEY (`revision` )
REFERENCES `info_paginas` (`revision` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
但是这个查询没问题(我从表 info_paginas 中删除了 PK id):
CREATE TABLE IF NOT EXISTS `info_paginas` (
`revision` DECIMAL(10,1) NOT NULL ,
PRIMARY KEY (`revision`))
ENGINE = InnoDB;
CREATE TABLE IF NOT EXISTS `pages_roles` (
`revision` DECIMAL(10,1) NOT NULL ,
PRIMARY KEY (`revision`),
CONSTRAINT `fk_pages_roles_info_paginas2`
FOREIGN KEY (`revision` )
REFERENCES `info_paginas` (`revision` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
我没有弄错,完全相同的表具有相同的引擎,但只少了一个 PK。有人知道天窗吗?