2
我设置了一些外键,但是phpMyAdmin不允许我创建多个外键。下面是表中的问题:无法创建外键id MySQL:列上缺少索引
Groups Table
id
name
address
Tasks Table
id
group_id
name
我需要Tasks Table
上group_id
外键,但是当我尝试它来创建提供了以下错误:Missing index on column(s)
。如果我在group_id
上添加一个唯一的约束条件,那么我可以创建外键,但该关系会变成One to One
,这不是预期的结果。
以下是表创建语句:
CREATE TABLE IF NOT EXISTS `groups` (
`id` int(11) NOT NULL,
`name` varchar(256) NOT NULL,
`address` varchar(256) NOT NULL,
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=latin1;
ALTER TABLE `groups`
ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `id` (`id`), ADD UNIQUE KEY `id_2` (`id`);
CREATE TABLE IF NOT EXISTS `tasks` (
`id` int(11) NOT NULL,
`group_id` int(11) NOT NULL,
`name` varchar(256) NOT NULL,
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;
ALTER TABLE `fixed_tasks`
ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `id` (`id`);
任何帮助或指导是非常赞赏。
显示为外键 – Jens
表创建statment和CREATE语句因此,创建一个非唯一索引呢? – eggyal
我刚刚更新了表创建语句的问题。我总是在phpMyAdmin中使用设计器视图来创建关系,所以我没有针对外键的声明。 – WpDoe