| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- use trs_data_migration;
- DROP PROCEDURE IF EXISTS sp_data_migration_wcmmetablexx;
- DELIMITER $$
- CREATE PROCEDURE sp_data_migration_wcmmetablexx(IN metableName VARCHAR(255),
- IN prevDocId BIGINT(20),
- IN docIdOffset BIGINT(20),
- IN channelIdOffset BIGINT(20))
- BEGIN
- DECLARE isover INT DEFAULT 0;
- DECLARE channel_migr_table_name varchar(255) DEFAULT 'wcmchannel';
- DECLARE f_CHNLID int(11) DEFAULT '0';
- DECLARE f_METADATAID int(11) DEFAULT '0';
- DECLARE cur CURSOR FOR
- SELECT
- channel_id,
- metadat_id
- FROM trs_data_migration.meta_data
- ORDER BY metadat_id asc;
- DECLARE CONTINUE HANDLER FOR NOT FOUND SET isover = 1;
-
- OPEN cur;
-
- FETCH cur INTO
- f_CHNLID,
- f_METADATAID;
- select concat('开始迁移 ', metableName) info;
- WHILE isover= 0 DO
- # 支持断点续传
- IF (f_METADATAID > prevDocId)
- THEN
- SET @metadataId = f_METADATAID;
- SET f_METADATAID = f_METADATAID + docIdOffset;
- SET @channel_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = channel_migr_table_name AND start_id < f_CHNLID and end_id >= f_CHNLID), 0);
- SET f_CHNLID = f_CHNLID + @channel_offset_num;
- #sql 修改数据
- SET @up_sql = concat('UPDATE trs_hycloud_iip.', metableName,
- ' SET MetaDataId = ', f_METADATAID,
- ', ChannelId = ', f_CHNLID,
- ' WHERE MetaDataId = ', @metadataId);
- prepare stmt from @up_sql;
- EXECUTE stmt;
- deallocate prepare stmt;
- SET @log_sql = trs_data_migration.build_migration_log_sql(metableName, @metadataId, now());
- prepare stmt from @log_sql;
- EXECUTE stmt;
- deallocate prepare stmt;
- call trs_data_migration.setOffset(metableName, docIdOffset, prevDocId, @metadataId);
- END IF ;
- FETCH cur INTO
- f_CHNLID,
- f_METADATAID;
-
- END WHILE;
-
- CLOSE cur;
- select concat('完成迁移 ', metableName) info;
- END $$
- DELIMITER ;
|