我有一個表(見下文),其中我添加了一個複合外鍵到另一個表。我無法將行添加到此表中,因爲外鍵失敗,即使父鍵具有包含複合索引值的記錄...所以表格當前爲空。無法刪除FK /約束(索引)
實際上不需要外鍵,系統只需要一個Fk到另一個表ID,所以我試着盡我所能刪除外鍵無效,總是得到infrus 150 err。
試圖阻止foregn重點檢查,然後刪除索引,列在鑽大膽無法刪除或者
這是5月表...
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`;
和
ALTER TABLE `Servicios` DROP INDEX `FK_Servicios_SolServicio2`;
但不斷收到:
#1025 - Error on rename of './segucom_SS8/#sql-2ca6_af6829' to './segucom_SS8/Servicios' (errno: 150)
有趣的是在創建表指的是這個約束爲FK_Servicios_SolServicio
而不是:FK_Servicios_SolServicio2
(在失蹤2結束)
以下是其他表
CREATE TABLE SolServicio
( SolSer_ID
INT(10)無符號NOT NULL的auto_increment, Empresa_ID
INT(10)無符號NOT NULL, FechaSolicitud
日期時間NOT NULL, HoraSolicitud
時間NOT NULL, Solicito
VARCHAR(20)整理utf8_spanish_ci NOT NULL, SolVia_ID
INT(10)無符號NOT NULL, DescripcionFalla
VARCHAR(264)整理utf8_spanish_ci NOT NULL, Empleado_ID
INT(10)無符號NOT NULL, TipoServ_ID
INT(10)無符號NOT NULL, EstatusSolServ_ID
INT(10)無符號NOT NULL, ServicioInicial
INT(10)無符號默認NULL, PRIMARY KEY(SolSer_ID
,Empresa_ID
) KEY IX_SolServicio2
(Empleado_ID
) KEY IX_SolServicio3
(Empresa_ID
) KEY FK_SolServicio_TiposServicio
(TipoServ_ID
), KEY FK_SolServicio_EstatusSolServicios
(EstatusSolServ_ID
) KEY FK_SolServicio_SolicitudVia
(SolVia_ID
) KEY FK_SolServicio_Empleados
(Empleado_ID
) 約束SolServicio_ibfk_1
外鍵(Empresa_ID
)參考文獻Empresas
(Empresa_ID
) 約束SolServicio_ibfk_2
外鍵(SolVia_ID
)參考文獻SolicitudVia
(SolVia_ID
) 約束SolServicio_ibfk_3
外鍵(Empleado_ID
)參考文獻Empleados
(Empleado_ID
) 約束SolServicio_ibfk_4
外鍵(TipoServ_ID
)參考文獻TiposServicio
(TipoServ_ID
) 約束SolServicio_ibfk_5
外鍵(EstatusSolServ_ID
)參考文獻EstatusSolServicios
(EstatusSolServ_ID
) )ENGINE = InnoDB的AUTO_INCREMENT = 7默認字符集= UTF8 COLLATE = utf8_spanish_ci
我們可以看另一張表嗎? –
是的,我編輯我的問題添加其他表 – Abhik