4_sp_city_data.sql 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. DROP PROCEDURE IF EXISTS sp_city_data;
  2. DELIMITER $$
  3. CREATE PROCEDURE sp_city_data(IN n INT)
  4. BEGIN
  5. # 每迁移一个wcm节点,@n 必须 +1
  6. SET @n = n;
  7. # 每个wcm节点,元数据表需要加上后缀,以区分同名元数据表
  8. SET @citySuffix = concat('_city', @n);
  9. # 支持断点续传,上一次迁移的最后一个 xx ID
  10. SET @prevRecId = ifnull((SELECT prev_id from data_migration_log where table_name = 'wcmchnldoc'), 0);
  11. SET @prevDocId = ifnull((SELECT max(start_id) FROM data_migration_offset WHERE table_name = 'wcmdocument'), 0);
  12. SET @prevClassInfoViewId = ifnull((SELECT prev_id from data_migration_log where table_name = 'xwcmclassinfoview'), 0);
  13. SET @prevTableInfoId = ifnull((SELECT max(start_id) FROM data_migration_offset WHERE table_name = 'xwcmtableinfo'), 0);
  14. # 支持数据增量 偏移量 修改
  15. # xx ID 偏移量,获取海云系统中的对应 xx maxID 错开一段距离,改为存入最大id
  16. SET @maxDocId= IFNULL((SELECT MAX(DOCID) from trs_hycloud_iip.wcmdocument),0);
  17. SET @docIdOffset = @maxDocId - @prevDocId;
  18. SET @maxRecId= IFNULL((SELECT MAX(recId) from trs_hycloud_iip.wcmchnldoc),0);
  19. SET @recIdOffset = @maxRecId - @prevRecId;
  20. SET @maxClassInfoViewId = IFNULL((SELECT MAX(CLASSINFOVIEWID) from trs_hycloud_iip.xwcmclassinfoview),0);
  21. SET @classInfoViewIdOffset = @maxClassInfoViewId - @prevClassInfoViewId;
  22. SET @view_offset_num = ifnull((SELECT max(offset_num) FROM data_migration_offset WHERE table_name = 'xwcmviewinfo'), 0);
  23. SET @viewIdOffset = @view_offset_num;
  24. SET @site_offset_num = ifnull((SELECT max(offset_num) FROM data_migration_offset WHERE table_name = 'wcmwebsite'), 0);
  25. SET @siteIdOffset = @site_offset_num;
  26. SET @wcmchannel_offset_num = ifnull((SELECT max(offset_num) FROM data_migration_offset WHERE table_name = 'wcmchannel'), 0);
  27. SET @channelIdOffset = @wcmchannel_offset_num;
  28. SET @classinfo_offset_num = ifnull((SELECT max(offset_num) FROM data_migration_offset WHERE table_name = 'xwcmclassinfo'), 0);
  29. SET @classInfoIdOffset = @classinfo_offset_num;
  30. #数据迁移
  31. call sp_data_migration_wcmdocument(@prevDocId, @docIdOffset, @viewIdOffset, @siteIdOffset, @channelIdOffset);
  32. call sp_data_migration_wcmchnldoc(@prevRecId, @recIdOffset, @docIdOffset, @siteIdOffset, @channelIdOffset, @viewIdOffset);
  33. call sp_data_migration_xwcmclassinfoview(@prevClassInfoViewId, @classInfoViewIdOffset, @classInfoIdOffset, @docIdOffset, @viewIdOffset);
  34. call sp_data_migration_wcmmetatable(@citySuffix, @prevTableInfoId, @prevDocId, @docIdOffset, @channelIdOffset);
  35. END $$
  36. DELIMITER ;