3_sp_data_migration_wcmtemplatequote.sql 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. DROP PROCEDURE IF EXISTS sp_data_migration_wcmtemplatequote;
  2. DELIMITER $$
  3. CREATE PROCEDURE sp_data_migration_wcmtemplatequote(IN prevTemplateQuoteId BIGINT(20),
  4. IN templateQuoteIdOffset BIGINT(20),
  5. IN templateIdOffset 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 'wcmtemplatequote';
  11. DECLARE template_migr_table_name varchar(255) DEFAULT 'wcmtemplate';
  12. DECLARE site_migr_table_name varchar(255) DEFAULT 'wcmwebsite';
  13. DECLARE channel_migr_table_name varchar(255) DEFAULT 'wcmchannel';
  14. DECLARE f_TEMPLATEQUOTEID int(11) DEFAULT '0';
  15. DECLARE f_TEMPLATEID int(11) DEFAULT '0';
  16. DECLARE f_TEMPLATETYPE smallint(6) DEFAULT '0';
  17. DECLARE f_QUOTEDFOLDERTYPE int(11) DEFAULT '0';
  18. DECLARE f_QUOTEDFOLDERID int(11) DEFAULT '0';
  19. DECLARE f_FAMILYINDEX smallint(6) DEFAULT '0';
  20. DECLARE f_QUOTETYPE smallint(6) DEFAULT '0';
  21. DECLARE cur CURSOR FOR
  22. SELECT
  23. TEMPLATEQUOTEID,
  24. TEMPLATEID,
  25. TEMPLATETYPE,
  26. QUOTEDFOLDERTYPE,
  27. QUOTEDFOLDERID,
  28. FAMILYINDEX,
  29. QUOTETYPE
  30. FROM wcmtemplatequote
  31. ORDER BY TEMPLATEQUOTEID asc;
  32. DECLARE CONTINUE HANDLER FOR NOT FOUND SET isover = 1;
  33. OPEN cur;
  34. FETCH cur INTO
  35. f_TEMPLATEQUOTEID,
  36. f_TEMPLATEID,
  37. f_TEMPLATETYPE,
  38. f_QUOTEDFOLDERTYPE,
  39. f_QUOTEDFOLDERID,
  40. f_FAMILYINDEX,
  41. f_QUOTETYPE
  42. ;
  43. select concat('开始迁移 ', migr_table_name) info;
  44. WHILE isover= 0 DO
  45. # 断点续传
  46. IF (f_TEMPLATEQUOTEID > prevTemplateQuoteId)
  47. THEN
  48. SET @TEMPLATEQUOTEID = f_TEMPLATEQUOTEID;
  49. SET f_TEMPLATEQUOTEID = f_TEMPLATEQUOTEID + templateQuoteIdOffset;
  50. 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);
  51. SET f_TEMPLATEID = f_TEMPLATEID + @template_offset_num;
  52. IF (f_QUOTEDFOLDERTYPE = 103)
  53. THEN
  54. SET @site_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = site_migr_table_name AND start_id < f_QUOTEDFOLDERID and end_id >= f_QUOTEDFOLDERID), siteIdOffset);
  55. SET f_QUOTEDFOLDERID = f_QUOTEDFOLDERID + @site_offset_num;
  56. END IF ;
  57. IF (f_QUOTEDFOLDERTYPE = 101)
  58. THEN
  59. SET @channel_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = channel_migr_table_name AND start_id < f_QUOTEDFOLDERID and end_id >= f_QUOTEDFOLDERID), channelIdOffset);
  60. SET f_QUOTEDFOLDERID = f_QUOTEDFOLDERID + @channel_offset_num;
  61. END IF ;
  62. insert into trs_hycloud_iip.wcmtemplatequote
  63. (
  64. TEMPLATEQUOTEID,
  65. TEMPLATEID,
  66. TEMPLATETYPE,
  67. QUOTEDFOLDERTYPE,
  68. QUOTEDFOLDERID,
  69. FAMILYINDEX,
  70. QUOTETYPE
  71. )
  72. VALUES
  73. (
  74. f_TEMPLATEQUOTEID,
  75. f_TEMPLATEID,
  76. f_TEMPLATETYPE,
  77. f_QUOTEDFOLDERTYPE,
  78. f_QUOTEDFOLDERID,
  79. f_FAMILYINDEX,
  80. f_QUOTETYPE
  81. );
  82. SET @log_sql = build_migration_log_sql(migr_table_name, @TEMPLATEQUOTEID, now());
  83. prepare stmt from @log_sql;
  84. EXECUTE stmt;
  85. deallocate prepare stmt;
  86. call setOffset(migr_table_name, templateQuoteIdOffset, prevTemplateQuoteId, @TEMPLATEQUOTEID);
  87. END IF ;
  88. FETCH cur INTO
  89. f_TEMPLATEQUOTEID,
  90. f_TEMPLATEID,
  91. f_TEMPLATETYPE,
  92. f_QUOTEDFOLDERTYPE,
  93. f_QUOTEDFOLDERID,
  94. f_FAMILYINDEX,
  95. f_QUOTETYPE
  96. ;
  97. END WHILE;
  98. CLOSE cur;
  99. select concat('完成迁移 ', migr_table_name) info;
  100. END $$
  101. DELIMITER ;