浏览代码

脚本支持增量更新数据2

lijihong 6 年之前
父节点
当前提交
6a33fa8819

+ 26 - 19
TRS.WCM.Developer/贵州项目/3_sp_data_migration_wcmwebsite.sql

@@ -158,24 +158,31 @@ CREATE PROCEDURE sp_data_migration_wcmwebsite(IN citySuffix VARCHAR(255), IN pre
 
 
     # 新建站点分类
-    SELECT ifnull(max(classificationId), 0) into v_classificationId from trs_hycloud_iip.wcmclassification;
-    #select v_classificationId;
-    SET @saveClassification_sql =  concat('insert into ',
-                                             'trs_hycloud_iip.wcmclassification (',
-                                                 'CLASSIFICATIONID,',
-                                                 'CNAME,',
-                                                 'CSHORTNAME,',
-                                                 'CTYPE',
-                                             ') ',
-                                             'values(',
-                                                (v_classificationId + 1), ',',
-                                                '\'', '贵州迁移站点_', citySuffix, '\',',
-                                                '\'', right(citySuffix, 5), '\',',
-                                                '11',
-                                             ') ');
-    prepare stmt from @saveClassification_sql;
-    EXECUTE stmt;
-    deallocate prepare stmt;
+    SET @metaTableExists = IFNULL((SELECT count(1) from trs_hycloud_iip.wcmclassification where CNAME = concat('贵州迁移站点_', citySuffix)), 0);
+
+    if @metaTableExists = 0
+      then
+        SELECT ifnull(max(classificationId), 0) into v_classificationId from trs_hycloud_iip.wcmclassification;
+        #select v_classificationId;
+        SET @saveClassification_sql =  concat('insert into ',
+                                                 'trs_hycloud_iip.wcmclassification (',
+                                                     'CLASSIFICATIONID,',
+                                                     'CNAME,',
+                                                     'CSHORTNAME,',
+                                                     'CTYPE',
+                                                 ') ',
+                                                 'values(',
+                                                    (v_classificationId + 1), ',',
+                                                    '\'', '贵州迁移站点_', citySuffix, '\',',
+                                                    '\'', right(citySuffix, 5), '\',',
+                                                    '11',
+                                                 ') ');
+        prepare stmt from @saveClassification_sql;
+        EXECUTE stmt;
+        deallocate prepare stmt;
+    else
+      SELECT ifnull(max(classificationId), 0) into v_classificationId from trs_hycloud_iip.wcmclassification where CNAME = concat('贵州迁移站点_', citySuffix);
+    end if;
 
 
 
@@ -300,7 +307,7 @@ CREATE PROCEDURE sp_data_migration_wcmwebsite(IN citySuffix VARCHAR(255), IN pre
                              ') ',
                              'values(',
                                  (@classificationObjId + 1), ',',
-                                 v_classificationId, ',',
+                                 v_classificationId + 1, ',',
                                  '103,',
                                  f_SITEID,
                              ') ');

+ 1 - 0
TRS.WCM.Developer/贵州项目/3_sp_data_migration_xwcmviewfieldinfo.sql

@@ -293,6 +293,7 @@ CREATE PROCEDURE sp_data_migration_xwcmviewfieldinfo(IN citySuffix VARCHAR(20),
           prepare stmt from @log_sql;
           EXECUTE stmt;
           deallocate prepare stmt;
+          call trs_data_migration.setOffset(migr_table_name, viewFieldInfoIdOffset, prevViewFieldInfoId, @VIEWFIELDINFOID);
     END IF ;
 
 		FETCH cur INTO

+ 2 - 0
TRS.WCM.Developer/贵州项目/全量迁移/3_sp_data_migration_wcmchnldoc.sql

@@ -106,6 +106,8 @@ CREATE PROCEDURE sp_data_migration_wcmchnldoc (
 	ORDER BY
 		RECID ASC;
 
+	update trs_hycloud_iip.wcmchnldoc set PUBSTATUS = 1 where RECID > prevRecId and DOCSTATUS = 10;
+
 	SET @maxRECID = IFNULL((SELECT MAX(recId) from trs_data_migration.wcmchnldoc), 0 );
 
 	SET @log_sql = trs_data_migration.build_migration_log_sql ( migr_table_name, @maxRECID, now() );

+ 9 - 3
TRS.WCM.Developer/贵州项目/全量迁移/3_sp_data_migration_wcmmetatable.sql

@@ -39,9 +39,9 @@ CREATE PROCEDURE sp_data_migration_wcmmetatable(IN citySuffix VARCHAR(20),
 
       THEN
 
-
         SET @metaTableExists = (SELECT count(1) from information_schema.tables where table_schema = 'trs_hycloud_iip' and table_name = concat('wcmmetatable', f_TABLENAME, citySuffix) );
 
+        select concat('开始更新 :', @metaTableExists, '====:','wcmmetatable', f_TABLENAME, citySuffix) info;
         IF (@metaTableExists > 0)
 
           THEN
@@ -67,7 +67,7 @@ CREATE PROCEDURE sp_data_migration_wcmmetatable(IN citySuffix VARCHAR(20),
                 ' CHANGE COLUMN `WCMMetaTable',f_TABLENAME,
                                  'ID` `wcmmetatable',f_TABLENAME, citySuffix,
                                  'ID`  int(11) NOT NULL;');
-                select concat('更新元数据sql: ', @id_field_sql ) info;
+                select concat('更新ID字段元数据sql: ', @id_field_sql ) info;
                 prepare stmt from @id_field_sql;
                 EXECUTE stmt;
                 deallocate prepare stmt;
@@ -80,7 +80,7 @@ CREATE PROCEDURE sp_data_migration_wcmmetatable(IN citySuffix VARCHAR(20),
 
                 set @id_sql = concat('INSERT INTO trs_hycloud_iip.wcmid VALUES (','\'','wcmmetatable',
                                  f_TABLENAME, citySuffix, '\'',', ', @meta_data_id + 1,', 1, ','\'','wcmmetatable',f_TABLENAME, citySuffix,'ID','\'',');');
-                select concat('更新元数据sql: ', @id_sql ) info;
+                select concat('插入wcmid元数据sql: ', @id_sql ) info;
                 prepare stmt from @id_sql;
                 EXECUTE stmt;
                 deallocate prepare stmt;
@@ -90,6 +90,12 @@ CREATE PROCEDURE sp_data_migration_wcmmetatable(IN citySuffix VARCHAR(20),
               prepare stmt from @max_sql;
               EXECUTE stmt;
               deallocate prepare stmt;
+
+              set @id_sql = concat('UPDATE trs_hycloud_iip.wcmid SET NEXTID = ', @meta_data_id + 1,' where TABLENAME = ','\'','wcmmetatable',
+                                   f_TABLENAME, citySuffix, '\'');
+              prepare stmt from @id_sql;
+              EXECUTE stmt;
+              deallocate prepare stmt;
             end if ;
 
             SET @log_sql = trs_data_migration.build_migration_log_sql(concat('wcmmetatable', f_TABLENAME, citySuffix), @meta_data_id, now());

+ 7 - 5
TRS.WCM.Developer/贵州项目/增量迁移/3_sp_data_migration_wcmchnldoc.sql

@@ -166,15 +166,15 @@ CREATE PROCEDURE sp_data_migration_wcmchnldoc(IN prevRecId BIGINT(20),
           SET @RECID = f_RECID;
           SET f_RECID = f_RECID + recIdOffset;
           set f_ORIGINRECID = f_RECID;
-          SET @doc_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = doc_migr_table_name AND start_id < f_DOCID and  end_id >= f_DOCID), 0);
+          SET @doc_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = doc_migr_table_name AND start_id < f_DOCID and  end_id >= f_DOCID), docIdOffset);
           SET f_DOCID = f_DOCID + @doc_offset_num;
-          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 @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), channelIdOffset);
           SET f_CHNLID = f_CHNLID + @channel_offset_num;
-          SET @site_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = site_migr_table_name AND start_id < f_SITEID and  end_id >= f_SITEID), 0);
+          SET @site_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = site_migr_table_name AND start_id < f_SITEID and  end_id >= f_SITEID), siteIdOffset);
           SET f_SITEID = f_SITEID + @site_offset_num;
-          SET @view_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = view_migr_table_name AND start_id < f_DOCKIND and  end_id >= f_DOCKIND), 0);
+          SET @view_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = view_migr_table_name AND start_id < f_DOCKIND and  end_id >= f_DOCKIND), docKindOffset);
           SET f_DOCKIND = f_DOCKIND + @view_offset_num;
-          SET @docchannel_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 @docchannel_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = channel_migr_table_name AND start_id < f_DOCCHANNEL and  end_id >= f_DOCCHANNEL), channelIdOffset);
           SET f_DOCCHANNEL = f_DOCCHANNEL + @docchannel_offset_num;
           IF (f_DocType = 1)
             THEN
@@ -321,6 +321,8 @@ CREATE PROCEDURE sp_data_migration_wcmchnldoc(IN prevRecId BIGINT(20),
 	
 	CLOSE cur;
 
+    update trs_hycloud_iip.wcmchnldoc set PUBSTATUS = 1 where RECID > prevRecId and DOCSTATUS = 10;
+
     select concat('完成迁移 ', migr_table_name) info;
 
 

+ 1 - 1
TRS.WCM.Developer/贵州项目/增量迁移/3_sp_data_migration_wcmmetablexx.sql

@@ -42,7 +42,7 @@ CREATE PROCEDURE sp_data_migration_wcmmetablexx(IN metableName VARCHAR(255),
 
           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 @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), channelIdOffset);
           SET f_CHNLID = f_CHNLID + @channel_offset_num;
           #sql 修改数据
           SET @up_sql = concat('UPDATE trs_hycloud_iip.', metableName,

+ 34 - 16
TRS.WCM.Developer/贵州项目/增量迁移/3_sp_data_migration_wcmmetatable.sql

@@ -61,25 +61,43 @@ CREATE PROCEDURE sp_data_migration_wcmmetatable(IN citySuffix VARCHAR(20),
 
             call sp_data_migration_wcmmetablexx(concat('wcmmetatable', f_TABLENAME, citySuffix), prevDocId, docIdOffset, channelIdOffset);
 
-            #更新当前表的ID字段名称
-            set @id_field_sql = concat('ALTER TABLE trs_hycloud_iip.wcmmetatable', f_TABLENAME, citySuffix,
-            ' CHANGE COLUMN `WCMMetaTable',f_TABLENAME,
+            if prevTableInfoId = 0
+              then
+                #更新当前表的ID字段名称
+                set @id_field_sql = concat('ALTER TABLE trs_hycloud_iip.wcmmetatable', f_TABLENAME, citySuffix,
+                ' CHANGE COLUMN `WCMMetaTable',f_TABLENAME,
                                  'ID` `wcmmetatable',f_TABLENAME, citySuffix,
                                  'ID`  int(11) NOT NULL;');
-            prepare stmt from @id_field_sql;
-            EXECUTE stmt;
-            deallocate prepare stmt;
-            #设置ID的最大值
-            set @max_sql = concat('SELECT max(wcmmetatable', f_TABLENAME, citySuffix, 'ID) into @meta_data_id from trs_hycloud_iip.wcmmetatable', f_TABLENAME, citySuffix);
-            prepare stmt from @max_sql;
-            EXECUTE stmt;
-            deallocate prepare stmt;
-
-            set @id_sql = concat('INSERT INTO trs_hycloud_iip.wcmid VALUES (','\'','wcmmetatable',
+                select concat('更新ID字段元数据sql: ', @id_field_sql ) info;
+                prepare stmt from @id_field_sql;
+                EXECUTE stmt;
+                deallocate prepare stmt;
+
+                #设置ID的最大值
+                set @max_sql = concat('SELECT max(wcmmetatable', f_TABLENAME, citySuffix, 'ID) into @meta_data_id from trs_hycloud_iip.wcmmetatable', f_TABLENAME, citySuffix);
+                prepare stmt from @max_sql;
+                EXECUTE stmt;
+                deallocate prepare stmt;
+
+                set @id_sql = concat('INSERT INTO trs_hycloud_iip.wcmid VALUES (','\'','wcmmetatable',
                                  f_TABLENAME, citySuffix, '\'',', ', @meta_data_id + 1,', 1, ','\'','wcmmetatable',f_TABLENAME, citySuffix,'ID','\'',');');
-            prepare stmt from @id_sql;
-            EXECUTE stmt;
-            deallocate prepare stmt;
+                select concat('插入wcmid元数据sql: ', @id_sql ) info;
+                prepare stmt from @id_sql;
+                EXECUTE stmt;
+                deallocate prepare stmt;
+            else
+              #设置ID的最大值
+              set @max_sql = concat('SELECT max(wcmmetatable', f_TABLENAME, citySuffix, 'ID) into @meta_data_id from trs_hycloud_iip.wcmmetatable', f_TABLENAME, citySuffix);
+              prepare stmt from @max_sql;
+              EXECUTE stmt;
+              deallocate prepare stmt;
+
+              set @id_sql = concat('UPDATE trs_hycloud_iip.wcmid SET NEXTID = ', @meta_data_id + 1,' where TABLENAME = ','\'','wcmmetatable',
+                                   f_TABLENAME, citySuffix, '\'');
+              prepare stmt from @id_sql;
+              EXECUTE stmt;
+              deallocate prepare stmt;
+            end if ;
 
             select concat('完成更新 ', 'wcmmetatable', f_TABLENAME, citySuffix, '.MetaDataId & ChannelId') info;
         END IF ;