Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql错误号:150在创建时,在删除字段后,它工作_Mysql_Relational Database - Fatal编程技术网

Mysql错误号:150在创建时,在删除字段后,它工作

Mysql错误号:150在创建时,在删除字段后,它工作,mysql,relational-database,Mysql,Relational Database,我有两个表,它们应该通过关系相互连接。我在MySQL Workbench中创建了一个模型,但出现了一个错误。在我看来,经过一些测试,我发现了一些奇怪的东西 我要创建的表(错误号为150时失败): 但是这个查询没有问题(我从表info_paginas中删除了PK id): 我不知道有什么错,完全相同的表,有相同的引擎,但只有一个PK少。有人知道awnser?您试图将单列外键映射到多列主键,这是不可能的。只有当外键具有相同的结构(即每列的列数和数据类型)时,才能通过外键映射多个列键 或者,您应该定义

我有两个表,它们应该通过关系相互连接。我在MySQL Workbench中创建了一个模型,但出现了一个错误。在我看来,经过一些测试,我发现了一些奇怪的东西

我要创建的表(错误号为150时失败):

但是这个查询没有问题(我从表info_paginas中删除了PK id):


我不知道有什么错,完全相同的表,有相同的引擎,但只有一个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`);