Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.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 无法删除FK/约束(索引)_Mysql - Fatal编程技术网

Mysql 无法删除FK/约束(索引)

Mysql 无法删除FK/约束(索引),mysql,Mysql,我有一个表(见下文),其中我向另一个表添加了一个复合foreig键。我无法将行添加到此表中,因为外键失败,即使父键有一个包含复合索引值的记录。。。因此,表当前为空 外键实际上是不需要的,系统将满足一个Fk到另一个表ID的要求,因此我尝试尽最大努力删除外键,但没有任何效果,总是出现错误 试图停止外键检查,然后删除索引、列,但无法删除 这是梅的桌子 CREATE TABLE `Servicios` ( `Servicio_ID` int(10) unsigned NOT NULL auto_inc

我有一个表(见下文),其中我向另一个表添加了一个复合foreig键。我无法将行添加到此表中,因为外键失败,即使父键有一个包含复合索引值的记录。。。因此,表当前为空

外键实际上是不需要的,系统将满足一个Fk到另一个表ID的要求,因此我尝试尽最大努力删除外键,但没有任何效果,总是出现错误

试图停止外键检查,然后删除索引、列,但无法删除

这是梅的桌子

CREATE TABLE `Servicios` (
 `Servicio_ID` int(10) unsigned NOT NULL auto_increment,
 `SolSer_ID` int(10) unsigned NOT NULL,
 `ConsecutivoServicio` int(10) unsigned default NULL,
 `ServicioAnt_ID` int(10) unsigned default NULL,
 `FechaAsignada` date NOT NULL COMMENT 'Fecha Asignada para el servicio',
 `HoraAsignada` time NOT NULL COMMENT 'Hora Asignada para hacer el servicio',
 `FechaServicio` date default NULL,
 `HoraServicio` time default NULL,
 `Tecnico_ID` int(10) unsigned NOT NULL,
 `Eq_ID` int(10) unsigned default NULL,
 `ObjetoReporte_ID` int(10) unsigned NOT NULL,
 `TipoFalla_ID` int(10) unsigned NOT NULL,
 `EnergiaRegulada` enum('Si','No') collate utf8_spanish_ci NOT NULL,
 `EstadoAlLlegar` varchar(500) collate utf8_spanish_ci default NULL,
 `DiagnosticoFalla` varchar(500) collate utf8_spanish_ci default NULL,
 `SolProp` varchar(500) collate utf8_spanish_ci default NULL,
 `Observaciones` varchar(500) collate utf8_spanish_ci default NULL,
 `ResultadoServ_ID` int(10) unsigned default NULL,
 `RetiroEquipo` enum('No','Si') collate utf8_spanish_ci default NULL,
 `EstatusServ_ID` int(10) unsigned default NULL,
 `RecibeServicioInt` int(10) unsigned default NULL,
 `PuestoRecibeInt` int(10) unsigned default NULL,
 `FechaRecibe` date default NULL,
 `HoraRecibe` time default NULL,
 `EstatusSolServ_ID` int(10) unsigned NOT NULL,
 `Empresa_ID` int(10) unsigned NOT NULL,
 `Empleado_ID` int(10) unsigned NOT NULL,
 PRIMARY KEY  (`Servicio_ID`),
 UNIQUE KEY `FK_Servicios_SolServicio2` (`SolSer_ID`,`Empresa_ID`),
 KEY `Tecnicos` (`Tecnico_ID`),
 KEY `FK_Servicios_ResultadosServicio` (`ResultadoServ_ID`),
 KEY `FK_Servicios_EstatusSolServicios` (`EstatusSolServ_ID`),
 KEY `FK_Servicios_Servicios` (`ServicioAnt_ID`),
 KEY `FK_Servicios_EstatusServicio` (`EstatusServ_ID`),
 KEY `FK_Servicios_TiposFalla` (`TipoFalla_ID`),
 KEY `FK_Servicios_ObjetoReporte` (`ObjetoReporte_ID`),
 KEY `FK_Servicios_Equipos` (`Eq_ID`),
 KEY `FK_Servicios_Empleados` (`Empleado_ID`),
 KEY `Empresa_ID` (`Empresa_ID`),
 **CONSTRAINT `FK_Servicios_SolServicio` FOREIGN KEY (`SolSer_ID`, `Empresa_ID`) REFERENCES `solservicio` (`SolSer_ID`, `Empresa_ID`),**
 CONSTRAINT `Servicios_ibfk_37` FOREIGN KEY (`SolSer_ID`) REFERENCES `SolServicio` (`SolSer_ID`),
 CONSTRAINT `Servicios_ibfk_38` FOREIGN KEY (`Tecnico_ID`) REFERENCES `Empleados` (`Empleado_ID`),
 CONSTRAINT `Servicios_ibfk_39` FOREIGN KEY (`ObjetoReporte_ID`) REFERENCES `ObjetoReporte` (`ObjetoReporteID`),
 CONSTRAINT `Servicios_ibfk_40` FOREIGN KEY (`TipoFalla_ID`) REFERENCES `TiposFalla` (`TipoFalla_ID`),
 CONSTRAINT `Servicios_ibfk_41` FOREIGN KEY (`ResultadoServ_ID`) REFERENCES `ResultadosServicio` (`ResServ_ID`),
 CONSTRAINT `Servicios_ibfk_42` FOREIGN KEY (`EstatusServ_ID`) REFERENCES `EstatusServicio` (`EstatusServ_ID`),
 CONSTRAINT `Servicios_ibfk_43` FOREIGN KEY (`EstatusSolServ_ID`) REFERENCES `EstatusSolServicios` (`EstatusSolServ_ID`),
 CONSTRAINT `Servicios_ibfk_44` FOREIGN KEY (`Empresa_ID`) REFERENCES `Empresas` (`Empresa_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_spanish_ci
粗体的冒犯性约束。我试过了

SET foreign_key_checks = 0;

ALTER TABLE `Servicios` DROP FOREIGN KEY `FK_Servicios_SolServicio2`;

但要继续:

#1025 - Error on rename of './segucom_SS8/#sql-2ca6_af6829' to './segucom_SS8/Servicios' (errno: 150)
有趣的是,create表将此约束引用为
FK\u servicos\u SolServicio
,而不是:
FK\u servicos\u SolServicio2
(末尾缺少2个)

这是另一张桌子

创建表
SolServicio
(
SolSer\u ID
int(10)无符号非空自动增量,
Empresa_ID
int(10)无符号非空,
FechaSolicitud
datetime不为空,
horaud
时间不为空,
requicto
varchar(20)校对utf8\u西班牙语\u ci不为空,
SolVia_ID
int(10)无符号非空,
descriptionfalla
varchar(264)校对utf8\u西班牙语\u ci不为空,
Empleado_ID
int(10)无符号非空,
TipoServ_ID
int(10)无符号非空,
estatusolserv\u ID
int(10)无符号非空,
SERVICIOINICAL
int(10)无符号默认为空, 主键(
SolSer\u ID
Empresa\u ID
), 键
IX_SolService 2
Empleado_ID
), 钥匙
IX_SolServicio3
Empresa_ID
), 键
FK\u SolServicio\u tiposervicio
TipoServ\u ID
), 键
FK_SolServicio_estatusolservicios
estatusolserv\u ID
), 键
FK_SolServicio_Requestudvia
SolVia_ID
), 键
FK_SolServicio_Empleados
Empleado_ID
), 约束
SolServicio_ibfk_1
外键(
Empresa_ID
)引用
Empresas
Empresa_ID
), 约束
SolServicio_ibfk_2
外键(
SolVia_ID
)引用
requestudvia
SolVia_ID
), 约束
SolServicio_ibfk_3
外键(
Empleado_ID
)引用
Empleados
Empleado_ID
), 约束
SolServicio_ibfk_4
外键(
TipoServ_ID
)引用
tiposervio
TipoServ_ID
), 约束
SolServicio_ibfk_5
外键(
estatusolserv_ID
)引用
estatusolservicos
estatusolserv_ID

)ENGINE=InnoDB AUTO_INCREMENT=7默认字符集=utf8 COLLATE=utf8_西班牙语_ci编辑:对不起,没有读到您已经尝试过了

试一试


嗯,对我来说这看起来像是一个输入错误:你有一个唯一的键,上面有你试图删除的外键的名称(
FK\u servicos\u SolServicio2
)。还有一个外键名为
FK\u servicio\u SolServicio
,在脚本中用**标记。显然,您不能使用
删除外键
删除唯一键。我建议你再试试

ALTER TABLE `Servicios` DROP FOREIGN KEY `FK_Servicios_SolServicio`;

@数字精度我正在修改,而不是删除约束,另一个表在复合索引的另一部分上有约束,因此最终我没有遗漏“复合索引”要求,我没有注意到我在创建计算索引时。。tks不管怎样是的,我正在编辑我的问题添加其他表格
SET foreign_key_checks = 0;
ALTER TABLE `Servicios` DROP FOREIGN KEY `FK_Servicios_SolServicio2`;
SET foreign_key_checks = 1;
ALTER TABLE `Servicios` DROP FOREIGN KEY `FK_Servicios_SolServicio`;