123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- DROP PROCEDURE IF EXISTS sp_data_migration_wcmtemplatequote;
- DELIMITER $$
- CREATE PROCEDURE sp_data_migration_wcmtemplatequote(IN prevTemplateQuoteId BIGINT(20),
- IN templateQuoteIdOffset BIGINT(20),
- IN templateIdOffset BIGINT(20),
- IN siteIdOffset BIGINT(20),
- IN channelIdOffset BIGINT(20))
- BEGIN
-
- DECLARE isover INT DEFAULT 0;
- DECLARE migr_table_name varchar(255) DEFAULT 'wcmtemplatequote';
- DECLARE template_migr_table_name varchar(255) DEFAULT 'wcmtemplate';
- DECLARE site_migr_table_name varchar(255) DEFAULT 'wcmwebsite';
- DECLARE channel_migr_table_name varchar(255) DEFAULT 'wcmchannel';
- DECLARE f_TEMPLATEQUOTEID int(11) DEFAULT '0';
- DECLARE f_TEMPLATEID int(11) DEFAULT '0';
- DECLARE f_TEMPLATETYPE smallint(6) DEFAULT '0';
- DECLARE f_QUOTEDFOLDERTYPE int(11) DEFAULT '0';
- DECLARE f_QUOTEDFOLDERID int(11) DEFAULT '0';
- DECLARE f_FAMILYINDEX smallint(6) DEFAULT '0';
- DECLARE f_QUOTETYPE smallint(6) DEFAULT '0';
- DECLARE cur CURSOR FOR
- SELECT
- TEMPLATEQUOTEID,
- TEMPLATEID,
- TEMPLATETYPE,
- QUOTEDFOLDERTYPE,
- QUOTEDFOLDERID,
- FAMILYINDEX,
- QUOTETYPE
- FROM wcmtemplatequote
- ORDER BY TEMPLATEQUOTEID asc;
- DECLARE CONTINUE HANDLER FOR NOT FOUND SET isover = 1;
-
- OPEN cur;
-
- FETCH cur INTO
- f_TEMPLATEQUOTEID,
- f_TEMPLATEID,
- f_TEMPLATETYPE,
- f_QUOTEDFOLDERTYPE,
- f_QUOTEDFOLDERID,
- f_FAMILYINDEX,
- f_QUOTETYPE
- ;
- select concat('开始迁移 ', migr_table_name) info;
- WHILE isover= 0 DO
- # 断点续传
- IF (f_TEMPLATEQUOTEID > prevTemplateQuoteId)
- THEN
- SET @TEMPLATEQUOTEID = f_TEMPLATEQUOTEID;
- SET f_TEMPLATEQUOTEID = f_TEMPLATEQUOTEID + templateQuoteIdOffset;
- 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);
- SET f_TEMPLATEID = f_TEMPLATEID + @template_offset_num;
- IF (f_QUOTEDFOLDERTYPE = 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_QUOTEDFOLDERID and end_id >= f_QUOTEDFOLDERID), siteIdOffset);
- SET f_QUOTEDFOLDERID = f_QUOTEDFOLDERID + @site_offset_num;
- END IF ;
- IF (f_QUOTEDFOLDERTYPE = 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_QUOTEDFOLDERID and end_id >= f_QUOTEDFOLDERID), channelIdOffset);
- SET f_QUOTEDFOLDERID = f_QUOTEDFOLDERID + @channel_offset_num;
- END IF ;
- insert into trs_hycloud_iip.wcmtemplatequote
- (
- TEMPLATEQUOTEID,
- TEMPLATEID,
- TEMPLATETYPE,
- QUOTEDFOLDERTYPE,
- QUOTEDFOLDERID,
- FAMILYINDEX,
- QUOTETYPE
- )
- VALUES
- (
- f_TEMPLATEQUOTEID,
- f_TEMPLATEID,
- f_TEMPLATETYPE,
- f_QUOTEDFOLDERTYPE,
- f_QUOTEDFOLDERID,
- f_FAMILYINDEX,
- f_QUOTETYPE
- );
- SET @log_sql = build_migration_log_sql(migr_table_name, @TEMPLATEQUOTEID, now());
- prepare stmt from @log_sql;
- EXECUTE stmt;
- deallocate prepare stmt;
- call setOffset(migr_table_name, templateQuoteIdOffset, prevTemplateQuoteId, @TEMPLATEQUOTEID);
- END IF ;
- FETCH cur INTO
- f_TEMPLATEQUOTEID,
- f_TEMPLATEID,
- f_TEMPLATETYPE,
- f_QUOTEDFOLDERTYPE,
- f_QUOTEDFOLDERID,
- f_FAMILYINDEX,
- f_QUOTETYPE
- ;
-
- END WHILE;
-
- CLOSE cur;
- select concat('完成迁移 ', migr_table_name) info;
- END $$
- DELIMITER ;
|