3_sp_data_migration_xwcmmetaviewemployer.sql 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. DROP PROCEDURE IF EXISTS sp_data_migration_xwcmmetaviewemployer;
  2. DELIMITER $$
  3. CREATE PROCEDURE sp_data_migration_xwcmmetaviewemployer(IN prevMetaViewEmployerId BIGINT(20),
  4. IN metaViewEmployerIdOffset BIGINT(20),
  5. IN viewIdOffset BIGINT(20),
  6. IN siteIdOffset BIGINT(20),
  7. IN channelIdOffset BIGINT(20))
  8. BEGIN
  9. DECLARE isover INT DEFAULT 0;
  10. DECLARE migr_table_name varchar(255) DEFAULT 'xwcmmetaviewemployer';
  11. DECLARE view_migr_table_name varchar(255) DEFAULT 'xwcmviewinfo';
  12. DECLARE site_migr_table_name varchar(255) DEFAULT 'wcmwebsite';
  13. DECLARE channel_migr_table_name varchar(255) DEFAULT 'wcmchannel';
  14. DECLARE f_VIEWID int(11) DEFAULT '0';
  15. DECLARE f_CHANNELID int(11) DEFAULT '0';
  16. DECLARE f_METAVIEWEMPLOYERID int(11) DEFAULT '0';
  17. DECLARE f_EmployerType int(11) DEFAULT '101';
  18. DECLARE f_EmployerId int(11) DEFAULT '0';
  19. DECLARE f_FOLDERTYPE int(11) DEFAULT '101';
  20. DECLARE f_FOLDERID int(11) DEFAULT '0';
  21. DECLARE cur CURSOR FOR
  22. SELECT
  23. VIEWID,
  24. CHANNELID,
  25. METAVIEWEMPLOYERID,
  26. 101,
  27. CHANNELID
  28. FROM xwcmmetaviewemployer
  29. ORDER BY METAVIEWEMPLOYERID asc;
  30. DECLARE CONTINUE HANDLER FOR NOT FOUND SET isover = 1;
  31. OPEN cur;
  32. FETCH cur INTO
  33. f_VIEWID,
  34. f_CHANNELID,
  35. f_METAVIEWEMPLOYERID,
  36. f_EmployerType,
  37. f_EmployerId
  38. ;
  39. select concat('开始迁移 ', migr_table_name) info;
  40. WHILE isover= 0 DO
  41. # 断点续传
  42. IF (f_METAVIEWEMPLOYERID > prevMetaViewEmployerId)
  43. THEN
  44. SET @METAVIEWEMPLOYERID = f_METAVIEWEMPLOYERID;
  45. SET f_METAVIEWEMPLOYERID = f_METAVIEWEMPLOYERID + metaViewEmployerIdOffset;
  46. SET @channel_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = channel_migr_table_name AND start_id < f_CHANNELID and end_id >= f_CHANNELID), 0);
  47. SET f_CHANNELID = f_CHANNELID + @channel_offset_num;
  48. SET @view_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = view_migr_table_name AND start_id < f_VIEWID and end_id >= f_VIEWID), 0);
  49. SET f_VIEWID = f_VIEWID + @view_offset_num;
  50. IF (f_EmployerType = 103)
  51. THEN
  52. SET @site_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = site_migr_table_name AND start_id < f_EmployerId and end_id >= f_EmployerId), 0);
  53. SET f_EmployerId = f_EmployerId + @site_offset_num;
  54. END IF ;
  55. IF (f_EmployerType = 101)
  56. THEN
  57. SET @channel_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = channel_migr_table_name AND start_id < f_EmployerId and end_id >= f_EmployerId), 0);
  58. SET f_EmployerId = f_EmployerId + @channel_offset_num;
  59. END IF ;
  60. insert into trs_hycloud_iip.xwcmmetaviewemployer
  61. (
  62. VIEWID,
  63. CHANNELID,
  64. METAVIEWEMPLOYERID,
  65. EmployerType,
  66. EmployerId
  67. )
  68. VALUES
  69. (
  70. f_VIEWID,
  71. f_CHANNELID,
  72. f_METAVIEWEMPLOYERID,
  73. f_EmployerType,
  74. f_EmployerId
  75. );
  76. SET @log_sql = build_migration_log_sql(migr_table_name, @METAVIEWEMPLOYERID, now());
  77. prepare stmt from @log_sql;
  78. EXECUTE stmt;
  79. deallocate prepare stmt;
  80. call setOffset(migr_table_name, metaViewEmployerIdOffset, prevMetaViewEmployerId, @METAVIEWEMPLOYERID);
  81. END IF ;
  82. FETCH cur INTO
  83. f_VIEWID,
  84. f_CHANNELID,
  85. f_METAVIEWEMPLOYERID,
  86. f_EmployerType,
  87. f_EmployerId
  88. ;
  89. END WHILE;
  90. CLOSE cur;
  91. select concat('完成迁移 ', migr_table_name) info;
  92. END $$
  93. DELIMITER ;