3_sp_data_migration_wcmtemplateargument.sql 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. use trs_data_migration;
  2. DROP PROCEDURE IF EXISTS sp_data_migration_wcmtemplateargument;
  3. DELIMITER $$
  4. CREATE PROCEDURE sp_data_migration_wcmtemplateargument(IN prevTemplateArgId BIGINT(20),
  5. IN templateArgIdOffset BIGINT(20),
  6. IN templateIdOffset BIGINT(20),
  7. IN siteIdOffset BIGINT(20),
  8. IN channelIdOffset BIGINT(20))
  9. BEGIN
  10. DECLARE isover INT DEFAULT 0;
  11. DECLARE migr_table_name varchar(255) DEFAULT 'wcmtemplateargument';
  12. DECLARE template_migr_table_name varchar(255) DEFAULT 'wcmtemplate';
  13. DECLARE site_migr_table_name varchar(255) DEFAULT 'wcmwebsite';
  14. DECLARE channel_migr_table_name varchar(255) DEFAULT 'wcmchannel';
  15. DECLARE f_TEMPLATEARGUMENTID int(11) DEFAULT '0';
  16. DECLARE f_EMPLOYERTYPE int(11) DEFAULT '0';
  17. DECLARE f_EMPLOYERID int(11) DEFAULT '0';
  18. DECLARE f_TEMPLATEID int(11) DEFAULT '0';
  19. DECLARE f_ARGUMENTNAME varchar(256) DEFAULT '0';
  20. DECLARE f_ARGUMENTVALUE varchar(500) DEFAULT NULL;
  21. DECLARE f_PREFIXOFNAME varchar(256) DEFAULT NULL;
  22. DECLARE cur CURSOR FOR
  23. SELECT
  24. TEMPLATEARGUMENTID,
  25. EMPLOYERTYPE,
  26. EMPLOYERID,
  27. TEMPLATEID,
  28. ARGUMENTNAME,
  29. ARGUMENTVALUE,
  30. PREFIXOFNAME
  31. FROM trs_data_migration.wcmtemplateargument
  32. ORDER BY TEMPLATEARGUMENTID asc;
  33. DECLARE CONTINUE HANDLER FOR NOT FOUND SET isover = 1;
  34. OPEN cur;
  35. FETCH cur INTO
  36. f_TEMPLATEARGUMENTID,
  37. f_EMPLOYERTYPE,
  38. f_EMPLOYERID,
  39. f_TEMPLATEID,
  40. f_ARGUMENTNAME,
  41. f_ARGUMENTVALUE,
  42. f_PREFIXOFNAME
  43. ;
  44. select concat('开始迁移 ', migr_table_name) info;
  45. WHILE isover= 0 DO
  46. # 断点续传
  47. IF (f_TEMPLATEARGUMENTID > prevTemplateArgId)
  48. THEN
  49. SET @TEMPLATEARGUMENTID = f_TEMPLATEARGUMENTID;
  50. SET f_TEMPLATEARGUMENTID = f_TEMPLATEARGUMENTID + templateArgIdOffset;
  51. 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);
  52. SET f_TEMPLATEID = f_TEMPLATEID + @template_offset_num;
  53. IF (f_EMPLOYERTYPE = 103)
  54. THEN
  55. 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), siteIdOffset);
  56. SET f_EMPLOYERID = f_EMPLOYERID + @site_offset_num;
  57. END IF ;
  58. IF (f_EMPLOYERTYPE = 101)
  59. THEN
  60. 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), channelIdOffset);
  61. SET f_EMPLOYERID = f_EMPLOYERID + @channel_offset_num;
  62. END IF ;
  63. insert into trs_hycloud_iip.wcmtemplateargument
  64. (
  65. TEMPLATEARGUMENTID,
  66. EMPLOYERTYPE,
  67. EMPLOYERID,
  68. TEMPLATEID,
  69. ARGUMENTNAME,
  70. ARGUMENTVALUE,
  71. PREFIXOFNAME
  72. )
  73. VALUES
  74. (
  75. f_TEMPLATEARGUMENTID,
  76. f_EMPLOYERTYPE,
  77. f_EMPLOYERID,
  78. f_TEMPLATEID,
  79. f_ARGUMENTNAME,
  80. f_ARGUMENTVALUE,
  81. f_PREFIXOFNAME
  82. );
  83. SET @log_sql = trs_data_migration.build_migration_log_sql(migr_table_name, @TEMPLATEARGUMENTID, now());
  84. prepare stmt from @log_sql;
  85. EXECUTE stmt;
  86. deallocate prepare stmt;
  87. call trs_data_migration.setOffset(migr_table_name, templateArgIdOffset, prevTemplateArgId, @TEMPLATEARGUMENTID);
  88. END IF ;
  89. FETCH cur INTO
  90. f_TEMPLATEARGUMENTID,
  91. f_EMPLOYERTYPE,
  92. f_EMPLOYERID,
  93. f_TEMPLATEID,
  94. f_ARGUMENTNAME,
  95. f_ARGUMENTVALUE,
  96. f_PREFIXOFNAME
  97. ;
  98. END WHILE;
  99. CLOSE cur;
  100. select concat('完成迁移 ', migr_table_name) info;
  101. END $$
  102. DELIMITER ;