无法创建外键 ID MySQL:列缺少索引
Foreign key cannot be created id MySQL: missing index on column(s)
我设置了一些外键,但是 phpMyAdmin 不允许我再创建一个。这里有 table 个问题:
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
,这不是预期的结果。
以下是 table 创建语句:
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`);
非常感谢任何帮助或指导。
以下代码可以创建两个具有相对外键的表:
CREATE TABLE `Groups` (
`id` INT NOT NULL,
`name` VARCHAR(45) NULL,
`address` VARCHAR(45) NULL,
PRIMARY KEY (`id`)
);
CREATE TABLE `Tasks` (
`id` INT NOT NULL,
`group_id` INT NULL,
`name` VARCHAR(45) NULL,
PRIMARY KEY (`id`),
CONSTRAINT `group_id`
FOREIGN KEY (`group_id`)
REFERENCES `Groups` (`id`)
);
我设置了一些外键,但是 phpMyAdmin 不允许我再创建一个。这里有 table 个问题:
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
,这不是预期的结果。
以下是 table 创建语句:
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`);
非常感谢任何帮助或指导。
以下代码可以创建两个具有相对外键的表:
CREATE TABLE `Groups` (
`id` INT NOT NULL,
`name` VARCHAR(45) NULL,
`address` VARCHAR(45) NULL,
PRIMARY KEY (`id`)
);
CREATE TABLE `Tasks` (
`id` INT NOT NULL,
`group_id` INT NULL,
`name` VARCHAR(45) NULL,
PRIMARY KEY (`id`),
CONSTRAINT `group_id`
FOREIGN KEY (`group_id`)
REFERENCES `Groups` (`id`)
);