我正在尝试使用MySQL Workbench添加一个表,其中2个外键设置为主键(复合键)。我也试过phpMyAdmin但结果是一样的。使用Workbench,我使用正向工程师将模式中的表添加到数据库中。
这是Workbench创建的SQL查询:
CREATE TABLE IF NOT EXISTS `img27globalmanager`.`servicios_requeridos_proyectos_mantenimiento_web_proyectos` (
`id_servicio_mantenimiento_web` INT NOT NULL,
`id_proyecto` INT NOT NULL,
INDEX `fk_servicios_requeridos_proyectos_mantenimiento_web_proyect_idx` (`id_servicio_mantenimiento_web` ASC),
INDEX `fk_servicios_requeridos_proyectos_mantenimiento_web_proyect_idx1` (`id_proyecto` ASC),
PRIMARY KEY (`id_servicio_mantenimiento_web`, `id_proyecto`),
CONSTRAINT `fk_servicios_requeridos_proyectos_mantenimiento_web_proyectos1`
FOREIGN KEY (`id_servicio_mantenimiento_web`)
REFERENCES `img27globalmanager`.`servicios_requeridos_proyectos_mantenimiento_web` (`id_servicio_mantenimiento_web`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_servicios_requeridos_proyectos_mantenimiento_web_proyectos2`
FOREIGN KEY (`id_proyecto`)
REFERENCES `img27globalmanager`.`proyectos` (`id_proyecto`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
该表从'Proyectos'表中获取1个主键字段,从'Servicios_requeridos_proyectos_mantenimiento_web'获取另一个主键字段。
我有更多的表,复合键以相同的方式创建,但这是唯一不起作用的表。
我已经检查了数据类型,并且两个foreigh键字段与它们的外键相同:INT / Not Null。我试图删除并再次创建表但没有工作。
请帮助。
我看到了一些类似的帖子,但他们的解决方案在我的案例中不起作用。