DROP PROCEDURE IF EXISTS sp_data_migration_wcmfolderpublishconfig; DELIMITER $$ CREATE PROCEDURE sp_data_migration_wcmfolderpublishconfig(IN prevFolderPublishConfigId BIGINT(20), IN folderPublishConfigIdOffset BIGINT(20), IN siteIdOffset BIGINT(20), IN channelIdOffset BIGINT(20)) BEGIN DECLARE isover INT DEFAULT 0; DECLARE migr_table_name varchar(255) DEFAULT 'wcmfolderpublishconfig'; DECLARE site_migr_table_name varchar(255) DEFAULT 'wcmwebsite'; DECLARE channel_migr_table_name varchar(255) DEFAULT 'wcmchannel'; DECLARE f_FOLDERPUBLISHCONFIGID int(11) DEFAULT 0; DECLARE f_FOLDERTYPE int(11) DEFAULT 0; DECLARE f_FOLDERID int(11) DEFAULT 0; DECLARE f_OUTLINEFILE varchar(100) DEFAULT NULL; DECLARE f_DETAILFILEEXT varchar(10) DEFAULT NULL; DECLARE f_DATAPATH varchar(200) DEFAULT NULL; DECLARE f_CRUSER varchar(30) DEFAULT NULL; DECLARE f_CRTIME datetime DEFAULT NULL; DECLARE f_ROOTDOMAIN varchar(250) DEFAULT NULL; DECLARE f_SITELANGUAGE int(11) DEFAULT NULL; DECLARE f_PAGEENCODING varchar(50) DEFAULT NULL; DECLARE cur CURSOR FOR SELECT FOLDERPUBLISHCONFIGID, FOLDERTYPE, FOLDERID, OUTLINEFILE, DETAILFILEEXT, DATAPATH, CRUSER, CRTIME, ROOTDOMAIN, SITELANGUAGE, PAGEENCODING FROM wcmfolderpublishconfig ORDER BY FOLDERPUBLISHCONFIGID asc; DECLARE CONTINUE HANDLER FOR NOT FOUND SET isover = 1; OPEN cur; FETCH cur INTO f_FOLDERPUBLISHCONFIGID, f_FOLDERTYPE, f_FOLDERID, f_OUTLINEFILE, f_DETAILFILEEXT, f_DATAPATH, f_CRUSER, f_CRTIME, f_ROOTDOMAIN, f_SITELANGUAGE, f_PAGEENCODING ; select concat('开始迁移 ', migr_table_name) info; WHILE isover= 0 DO # 断点续传 IF (f_FOLDERPUBLISHCONFIGID > prevFolderPublishConfigId) THEN SET @FOLDERPUBLISHCONFIGID = f_FOLDERPUBLISHCONFIGID; SET f_FOLDERPUBLISHCONFIGID = f_FOLDERPUBLISHCONFIGID + folderPublishConfigIdOffset; IF (f_FOLDERTYPE = 103) THEN 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); SET f_FOLDERID = f_FOLDERID + @site_offset_num; END IF ; IF (f_FOLDERTYPE = 101) THEN 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); SET f_FOLDERID = f_FOLDERID + @channel_offset_num; END IF ; insert into trs_hycloud_iip.wcmfolderpublishconfig ( FOLDERPUBLISHCONFIGID, FOLDERTYPE, FOLDERID, OUTLINEFILE, DETAILFILEEXT, DATAPATH, CRUSER, CRTIME, ROOTDOMAIN, SITELANGUAGE, PAGEENCODING ) VALUES ( f_FOLDERPUBLISHCONFIGID, f_FOLDERTYPE, f_FOLDERID, f_OUTLINEFILE, f_DETAILFILEEXT, f_DATAPATH, f_CRUSER, f_CRTIME, f_ROOTDOMAIN, f_SITELANGUAGE, f_PAGEENCODING ); SET @log_sql = build_migration_log_sql(migr_table_name, @FOLDERPUBLISHCONFIGID, now()); prepare stmt from @log_sql; EXECUTE stmt; deallocate prepare stmt; call setOffset(migr_table_name, folderPublishConfigIdOffset, prevFolderPublishConfigId, @FOLDERPUBLISHCONFIGID); END IF ; FETCH cur INTO f_FOLDERPUBLISHCONFIGID, f_FOLDERTYPE, f_FOLDERID, f_OUTLINEFILE, f_DETAILFILEEXT, f_DATAPATH, f_CRUSER, f_CRTIME, f_ROOTDOMAIN, f_SITELANGUAGE, f_PAGEENCODING ; END WHILE; CLOSE cur; select concat('完成迁移 ', migr_table_name) info; END $$ DELIMITER ;