Mysql错误号:150在创建时,在删除字段后,它工作
我有两个表,它们应该通过关系相互连接。我在MySQL Workbench中创建了一个模型,但出现了一个错误。在我看来,经过一些测试,我发现了一些奇怪的东西 我要创建的表(错误号为150时失败): 但是这个查询没有问题(我从表info_paginas中删除了PK id):Mysql错误号:150在创建时,在删除字段后,它工作,mysql,relational-database,Mysql,Relational Database,我有两个表,它们应该通过关系相互连接。我在MySQL Workbench中创建了一个模型,但出现了一个错误。在我看来,经过一些测试,我发现了一些奇怪的东西 我要创建的表(错误号为150时失败): 但是这个查询没有问题(我从表info_paginas中删除了PK id): 我不知道有什么错,完全相同的表,有相同的引擎,但只有一个PK少。有人知道awnser?您试图将单列外键映射到多列主键,这是不可能的。只有当外键具有相同的结构(即每列的列数和数据类型)时,才能通过外键映射多个列键 或者,您应该定义
我不知道有什么错,完全相同的表,有相同的引擎,但只有一个PK少。有人知道awnser?您试图将单列外键映射到多列主键,这是不可能的。只有当外键具有相同的结构(即每列的列数和数据类型)时,才能通过外键映射多个列键 或者,您应该定义单列键,如下所示:
alter table info_paginas add key `byRevision` (`revision`);
然后运行第二个查询(在本例中,您将获得单列键到单列键的映射)。好的,我试过了。成功了,谢谢。我以前试过另一张桌子,它的结构和我的一样。但再次感谢:)
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
alter table info_paginas add key `byRevision` (`revision`);