3_sp_data_migration_wcmchannelchildindexquote.sql 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. DROP PROCEDURE IF EXISTS sp_data_migration_wcmchannelchildindexquote;
  2. DELIMITER $$
  3. CREATE PROCEDURE sp_data_migration_wcmchannelchildindexquote(IN templateIdOffset BIGINT(20),
  4. IN siteIdOffset BIGINT(20),
  5. IN channelIdOffset BIGINT(20))
  6. BEGIN
  7. DECLARE isover INT DEFAULT 0;
  8. DECLARE migr_table_name varchar(255) DEFAULT 'wcmchannelchildindexquote';
  9. DECLARE template_migr_table_name varchar(255) DEFAULT 'wcmtemplate';
  10. DECLARE site_migr_table_name varchar(255) DEFAULT 'wcmwebsite';
  11. DECLARE channel_migr_table_name varchar(255) DEFAULT 'wcmchannel';
  12. DECLARE f_TEMPLATEID int(11) DEFAULT '0';
  13. DECLARE f_FOLDERTYPE int(11) DEFAULT '0';
  14. DECLARE f_FOLDERID int(11) DEFAULT '0';
  15. DECLARE f_QUOTECHANNELID int(11) DEFAULT '0';
  16. DECLARE cur CURSOR FOR
  17. SELECT
  18. TEMPLATEID,
  19. FOLDERTYPE,
  20. FOLDERID,
  21. QUOTECHANNELID
  22. FROM wcmchannelchildindexquote;
  23. DECLARE CONTINUE HANDLER FOR NOT FOUND SET isover = 1;
  24. OPEN cur;
  25. FETCH cur INTO
  26. f_TEMPLATEID,
  27. f_FOLDERTYPE,
  28. f_FOLDERID,
  29. f_QUOTECHANNELID
  30. ;
  31. select concat('开始迁移 ', migr_table_name) info;
  32. WHILE isover= 0 DO
  33. SET @template_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = template_migr_table_name AND start_id < f_TEMPLATEID and end_id >=f_TEMPLATEID), templateIdOffset);
  34. SET f_TEMPLATEID = f_TEMPLATEID + @template_offset_num;
  35. SET @quote_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = channel_migr_table_name AND start_id < f_QUOTECHANNELID and end_id >=f_QUOTECHANNELID), channelIdOffset);
  36. SET f_QUOTECHANNELID = f_QUOTECHANNELID + @quote_offset_num;
  37. IF (f_FOLDERTYPE = 103)
  38. THEN
  39. SET @site_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = site_migr_table_name AND start_id < f_FOLDERID and end_id >=f_FOLDERID), siteIdOffset);
  40. SET f_FOLDERID = f_FOLDERID + @site_offset_num;
  41. END IF ;
  42. IF (f_FOLDERTYPE = 101)
  43. THEN
  44. SET @channel_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = channel_migr_table_name AND start_id < f_FOLDERID and end_id >=f_FOLDERID), channelIdOffset);
  45. SET f_FOLDERID = f_FOLDERID + @channel_offset_num;
  46. END IF ;
  47. insert into trs_hycloud_iip.wcmchannelchildindexquote
  48. (
  49. TEMPLATEID,
  50. FOLDERTYPE,
  51. FOLDERID,
  52. QUOTECHANNELID
  53. )
  54. VALUES
  55. (
  56. f_TEMPLATEID,
  57. f_FOLDERTYPE,
  58. f_FOLDERID,
  59. f_QUOTECHANNELID
  60. );
  61. FETCH cur INTO
  62. f_TEMPLATEID,
  63. f_FOLDERTYPE,
  64. f_FOLDERID,
  65. f_QUOTECHANNELID
  66. ;
  67. END WHILE;
  68. CLOSE cur;
  69. select concat('完成迁移 ', migr_table_name) info;
  70. END $$
  71. DELIMITER ;