update_proces_init_idx_rec__while1.sql 951 B

123456789101112131415161718192021
  1. CREATE DEFINER=`root`@`localhost` PROCEDURE `update_proces_init_idx_rec__while1`()
  2. BEGIN
  3. -- update `CRM_PROCES_idx_TEMP` as i set i.`idx_PROCES_INIT_ID`=IF(i.`TYPE`='PROCES_INIT', i.`ID_PROCES`, 0);
  4. -- P_INIT_ID.1--fill_idx_INIT
  5. SET @i = 0;
  6. SET @loopLomit = 100;
  7. SET @pinitCnt = 1;
  8. WHILE @i < @loopLomit and @pinitCnt > 0 DO
  9. update `CRM_PROCES_idx_TEMP` p
  10. join `CRM_PROCES_idx_TEMP` pp on ( pp.`ID_PROCES` = p.`PARENT_ID` )
  11. -- set p.`idx_MAIN_PROCES_INIT_ID`=pp.`idx_MAIN_PROCES_INIT_ID`
  12. -- where p.`idx_MAIN_PROCES_INIT_ID`=0 and pp.`idx_MAIN_PROCES_INIT_ID`>0
  13. set p.`idx_PROCES_INIT_ID` = IF( p.`idx_PROCES_INIT_ID` > 0, p.`idx_PROCES_INIT_ID`, pp.`idx_PROCES_INIT_ID` )
  14. , p.`idx_MAIN_PROCES_INIT_ID` = pp.`idx_MAIN_PROCES_INIT_ID`
  15. -- // TODO:?: update here `idx_MAIN_PROCES_INIT_ID`
  16. where p.`idx_PROCES_INIT_ID` = 0 and pp.`idx_PROCES_INIT_ID` > 0
  17. ;
  18. SET @pinitCnt = ROW_COUNT();
  19. SET @i = @i + 1;
  20. END WHILE;
  21. END