Este es el script que hice para actualizar el idcuantificacion pero revisando en las bases de datos actuales del cliente veo que no se logran actualizar en detallerequerimiento 6 fila y en detalleordencompra son 5, no hay datos que coincidad con la actividad, modelo, producto y orden que vivienda este en null, Después de correr el Script (El script son los primero párrafos del documento de texto) encontramos los datos que no tienen idcuantificación raiz, convertimos los existentes en raiz con la última linea del archivo y ya quedo. cabe resaltar que hay varias cuantificaciones raiz que no coinciden con las cantidades y maximo de la cuantificación especifica. También tengo duda donde se almacena la cantidad de productos de cada requerimiento solicitado, porque no encuentre ningún dato en la tabla de detallerequerimiento que me indicará pues un mismo producto de una misma actividad puede tener varios requerimientos (es decir puedo pedir varios sacos de cemento para la fundición de cimientos en 3 requemientos siempre y cuando no me pase del total asignado ) UPDATE detallerequerimiento d INNER JOIN (SELECT tbl. idcuantificacion idoriginal, c.idcuantificacion idbase FROM cuantificacion c INNER JOIN (SELECT c.idcuantificacion, c.orden, idactividad, idproducto, idmodelo FROM cuantificacion c INNER JOIN detallerequerimiento d ON c.idcuantificacion = d.idcuantificacion)tbl ON c.idproducto = tbl.idproducto AND c.idmodelo = tbl.idmodelo AND c.idactividad = tbl.idactividad AND c.orden = tbl.orden AND idvivienda is null)ta ON d.idcuantificacion = ta.idoriginal SET d.idcuantificacion = ta.idbase; UPDATE detalleoperacion d INNER JOIN (SELECT tbl. idcuantificacion idoriginal, c.idcuantificacion idbase FROM cuantificacion c INNER JOIN (SELECT c.idcuantificacion, c.orden, idactividad, c.idproducto, idmodelo FROM cuantificacion c INNER JOIN detalleoperacion d ON c.idcuantificacion = d.idcuantificacion)tbl ON c.idproducto = tbl.idproducto AND c.idmodelo = tbl.idmodelo AND c.idactividad = tbl.idactividad AND c.orden = tbl.orden AND idvivienda is null)ta ON d.idcuantificacion = ta.idoriginal SET d.idcuantificacion = ta.idbase; UPDATE detalleordencompra d INNER JOIN (SELECT tbl. idcuantificacion idoriginal, c.idcuantificacion idbase FROM cuantificacion c INNER JOIN (SELECT c.idcuantificacion, c.orden, idactividad, c.idproducto, idmodelo FROM cuantificacion c INNER JOIN detalleordencompra d ON c.idcuantificacion = d.idcuantificacion)tbl ON c.idproducto = tbl.idproducto AND c.idmodelo = tbl.idmodelo AND c.idactividad = tbl.idactividad AND c.orden = tbl.orden AND idvivienda is null)ta ON d.idcuantificacion = ta.idoriginal SET d.idcuantificacion = ta.idbase; SELECT * FROM `detallerequerimiento` WHERE idcuantificacion IN (SELECT idcuantificacion FROM cuantificacion WHERE idvivienda is not null) ORDER BY idcuantificacion; SELECT * FROM detalleordencompra WHERE idcuantificacion IN (SELECT idcuantificacion FROM cuantificacion WHERE idvivienda is not null) ORDER BY idcuantificacion; UPDATE cuantificacion SET idvivienda = null WHERE idcuantificacion in (9940,15699,15776,16299,16889,17184,16966,16594,16671,9863,16376,17261); DELETE FROM cuantificacion WHERE idvivienda IS NOT NULL; ALTER TABLE cuantificacion DROP FOREIGN KEY `FK_cuantificacion_idvivienda` ; ALTER TABLE cuantificacion DROP INDEX `FK_cuantificacion_idvivienda`; ALTER TABLE cuantificacion DROP column idvivienda;