【发布时间】:2012-10-17 02:54:01
【问题描述】:
嗯,我有两张桌子
publica_evento_grupo
Field | Type | Null | Key | Default | Extra
id_evento_grupo int(10) unsigned NO PRI auto_increment
id_evento int(8) unsigned NO MUL
id_grupo int(8) unsigned NO MUL
identificacao varchar(55) NO
publica_identificacao_publicacao
Field | Type | Null | Key | Default | Extra
id_evento int(8) unsigned NO PRI
identificacao varchar(55) NO PRI
publica_evento_grupo.id_evento in 是名为 publica_evento 的第三个表的外键,但与表 publica_identificacao_publicacao.identificacao 的列一起也是外键。问题是,我必须通过键 id_evento 创建将 publica_evento_grupo 与 publica_identificacao_publicacao 相关联的外键,但是当我尝试使用 @ 列创建另一个 FK 时987654329@,它给出了下面的errno
[Err] 1005 - Can't create table '#sql-1049_1980992' (errno: 150).
如您所见,表 publica_identificacao_publicacao 有两个 PK,这就是它必须是 2 个 FK 才能关联它们的原因,我还没有创建索引,因为就我而言知道,我只需要在添加 FK 约束后创建索引,并且我能够在 evento_grupo 和 identificacao_publicacao 之间为 id_evento 列创建 FK 约束,我不知道为什么只有 identificacao 列出现此错误
编辑 1:@RolandBouman 我无权使用该命令 SHOW ENGINE INNODB STATUS
编辑 2:@Geoff_Montee 实际上您传递的命令有效,不明白为什么我使用该结构,看看这个问题MySQL UNIQUE Constraint multiple columns condition
【问题讨论】:
-
遇到此错误后立即执行
SHOW ENGINE INNODB STATUS,并在输出中查找标题LAST FOREIGN KEy ERROR。可能这只是数据类型不匹配。
标签: mysql sql entity-relationship foreign-key-relationship indexing