|
|
@@ -3,7 +3,8 @@ use trs_data_migration;
|
|
|
|
|
|
DROP PROCEDURE IF EXISTS sp_data_migration_wcmmetatable;
|
|
|
DELIMITER $$
|
|
|
-CREATE PROCEDURE sp_data_migration_wcmmetatable(IN prevTableInfoId VARCHAR(100),
|
|
|
+CREATE PROCEDURE sp_data_migration_wcmmetatable(IN citySuffix VARCHAR(20),
|
|
|
+ IN prevTableInfoId VARCHAR(100),
|
|
|
IN prevDocId BIGINT(20),
|
|
|
IN docIdOffset BIGINT(20),
|
|
|
IN channelIdOffset BIGINT(20))
|
|
|
@@ -40,27 +41,34 @@ CREATE PROCEDURE sp_data_migration_wcmmetatable(IN prevTableInfoId VARCHAR(100),
|
|
|
|
|
|
THEN
|
|
|
|
|
|
- select concat('开始更新 ', 'wcmmetatable', f_TABLENAME, '.MetaDataId & ChannelId') info;
|
|
|
|
|
|
- # 由于元数据表是动态生成的,执行存储过程前,需要提前将所有元数据表(结构+数据)直接复制至海云
|
|
|
- # 迁移后的元数据,其元数据ID不能和其他元数据表中的ID发生冲突,需要更改,因此有了以下SQL
|
|
|
- SET @log_sql = concat('UPDATE trs_hycloud_iip.', f_TABLENAME,
|
|
|
- ' SET MetaDataId = MetaDataId + ', docIdOffset,
|
|
|
- ', ChannelId = ChannelId + ', channelIdOffset,
|
|
|
- ' WHERE MetaDataId > ', prevDocId);
|
|
|
+ SET @metaTableExists = (SELECT count(1) from information_schema.tables where table_schema = 'trs_hycloud_iip' and table_name = concat('wcmmetatable', f_TABLENAME, citySuffix) );
|
|
|
|
|
|
- prepare stmt from @log_sql;
|
|
|
- EXECUTE stmt;
|
|
|
- deallocate prepare stmt;
|
|
|
+ IF (@metaTableExists > 0)
|
|
|
|
|
|
- SET @log_sql = trs_data_migration.build_migration_log_sql(concat('wcmmetatable', f_TABLENAME), -1);
|
|
|
+ THEN
|
|
|
|
|
|
- prepare stmt from @log_sql;
|
|
|
- EXECUTE stmt;
|
|
|
- deallocate prepare stmt;
|
|
|
+ select concat('开始更新 ', 'wcmmetatable', f_TABLENAME, citySuffix, '.MetaDataId & ChannelId') info;
|
|
|
|
|
|
- select concat('完成更新 ', 'wcmmetatable', f_TABLENAME, '.MetaDataId & ChannelId') info;
|
|
|
+ # 由于元数据表是动态生成的,执行存储过程前,需要提前将所有元数据表(结构+数据)直接复制至海云
|
|
|
+ # 迁移后的元数据,其元数据ID不能和其他元数据表中的ID发生冲突,需要更改,因此有了以下SQL
|
|
|
+ SET @log_sql = concat('UPDATE trs_hycloud_iip.wcmmetatable', f_TABLENAME, citySuffix,
|
|
|
+ ' SET MetaDataId = MetaDataId + ', docIdOffset,
|
|
|
+ ', ChannelId = ChannelId + ', channelIdOffset,
|
|
|
+ ' WHERE MetaDataId > ', prevDocId);
|
|
|
|
|
|
+ prepare stmt from @log_sql;
|
|
|
+ EXECUTE stmt;
|
|
|
+ deallocate prepare stmt;
|
|
|
+
|
|
|
+ SET @log_sql = trs_data_migration.build_migration_log_sql(concat('wcmmetatable', f_TABLENAME, citySuffix), -1);
|
|
|
+
|
|
|
+ prepare stmt from @log_sql;
|
|
|
+ EXECUTE stmt;
|
|
|
+ deallocate prepare stmt;
|
|
|
+
|
|
|
+ select concat('完成更新 ', 'wcmmetatable', f_TABLENAME, citySuffix, '.MetaDataId & ChannelId') info;
|
|
|
+ END IF ;
|
|
|
|
|
|
END IF ;
|
|
|
|