3_sp_data_migration_xwcmdbfieldinfo.sql 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. DROP PROCEDURE IF EXISTS sp_data_migration_xwcmdbfieldinfo;
  2. DELIMITER $$
  3. CREATE PROCEDURE sp_data_migration_xwcmdbfieldinfo(IN citySuffix VARCHAR(20),
  4. IN prevFieldId BIGINT(20),
  5. IN fieldIdOffset BIGINT(20),
  6. IN classInfoIdOffset BIGINT(20),
  7. IN tableIdOffset BIGINT(20))
  8. BEGIN
  9. DECLARE isover INT DEFAULT 0;
  10. DECLARE migr_table_name varchar(255) DEFAULT 'xwcmdbfieldinfo';
  11. DECLARE tabel_migr_table_name varchar(255) DEFAULT 'xwcmtableinfo';
  12. DECLARE class_igr_table_name varchar(255) DEFAULT 'xwcmclassinfo';
  13. DECLARE f_DBFIELDINFOID int(11) DEFAULT NULL;
  14. DECLARE f_TABLENAME varchar(50) DEFAULT '0';
  15. DECLARE f_TABLEID int(11) DEFAULT '0';
  16. DECLARE f_FIELDNAME varchar(50) DEFAULT '0';
  17. DECLARE f_ANOTHERNAME varchar(200) DEFAULT '0';
  18. DECLARE f_FIELDTYPE int(11) DEFAULT '0';
  19. DECLARE f_DBTYPE int(11) DEFAULT '0';
  20. DECLARE f_DBLENGTH int(11) DEFAULT '0';
  21. DECLARE f_DEFAULTVALUE varchar(200) DEFAULT NULL;
  22. DECLARE f_ENMVALUE varchar(1000) DEFAULT NULL;
  23. DECLARE f_NOTNULL smallint(6) DEFAULT NULL;
  24. DECLARE f_CLASSID int(11) DEFAULT '0';
  25. DECLARE f_DBSCALE int(11) DEFAULT '0';
  26. DECLARE f_CRUSER varchar(30) DEFAULT NULL;
  27. DECLARE f_CRTIME datetime DEFAULT NULL;
  28. DECLARE f_VALIDATOR varchar(200) DEFAULT NULL;
  29. DECLARE f_RADORCHK smallint(6) DEFAULT NULL;
  30. DECLARE f_NOTEDIT smallint(6) DEFAULT '0';
  31. DECLARE f_HIDDENFIELD smallint(6) DEFAULT '0';
  32. DECLARE cur CURSOR FOR
  33. SELECT
  34. DBFIELDINFOID,
  35. TABLENAME,
  36. TABLEID,
  37. FIELDNAME,
  38. ANOTHERNAME,
  39. FIELDTYPE,
  40. DBTYPE,
  41. DBLENGTH,
  42. DEFAULTVALUE,
  43. ENMVALUE,
  44. NOTNULL,
  45. CLASSID,
  46. DBSCALE,
  47. CRUSER,
  48. CRTIME,
  49. VALIDATOR,
  50. RADORCHK,
  51. NOTEDIT,
  52. HIDDENFIELD
  53. FROM xwcmdbfieldinfo
  54. ORDER BY DBFIELDINFOID asc;
  55. DECLARE CONTINUE HANDLER FOR NOT FOUND SET isover = 1;
  56. OPEN cur;
  57. FETCH cur INTO
  58. f_DBFIELDINFOID,
  59. f_TABLENAME,
  60. f_TABLEID,
  61. f_FIELDNAME,
  62. f_ANOTHERNAME,
  63. f_FIELDTYPE,
  64. f_DBTYPE,
  65. f_DBLENGTH,
  66. f_DEFAULTVALUE,
  67. f_ENMVALUE,
  68. f_NOTNULL,
  69. f_CLASSID,
  70. f_DBSCALE,
  71. f_CRUSER,
  72. f_CRTIME,
  73. f_VALIDATOR,
  74. f_RADORCHK,
  75. f_NOTEDIT,
  76. f_HIDDENFIELD
  77. ;
  78. select concat('开始迁移 ', migr_table_name) info;
  79. WHILE isover= 0 DO
  80. # 断点续传
  81. IF (f_DBFIELDINFOID > prevFieldId)
  82. THEN
  83. SET @DBFIELDINFOID = f_DBFIELDINFOID;
  84. SET f_DBFIELDINFOID = f_DBFIELDINFOID + fieldIdOffset;
  85. SET @table_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = tabel_migr_table_name AND start_id < f_TABLEID and end_id >= f_TABLEID), tableIdOffset);
  86. SET f_TABLEID = f_TABLEID + @table_offset_num;
  87. SET @class_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = class_igr_table_name AND start_id < f_CLASSID and end_id >= f_CLASSID), classInfoIdOffset);
  88. SET f_CLASSID = f_CLASSID + @class_offset_num;
  89. insert into trs_hycloud_iip.xwcmdbfieldinfo
  90. (
  91. DBFIELDINFOID,
  92. TABLENAME,
  93. TABLEID,
  94. FIELDNAME,
  95. ANOTHERNAME,
  96. FIELDTYPE,
  97. DBTYPE,
  98. DBLENGTH,
  99. DEFAULTVALUE,
  100. ENMVALUE,
  101. NOTNULL,
  102. CLASSID,
  103. DBSCALE,
  104. CRUSER,
  105. CRTIME,
  106. VALIDATOR,
  107. RADORCHK,
  108. NOTEDIT,
  109. HIDDENFIELD
  110. )
  111. VALUES
  112. (
  113. f_DBFIELDINFOID,
  114. concat(f_TABLENAME, citySuffix),
  115. f_TABLEID,
  116. f_FIELDNAME,
  117. f_ANOTHERNAME,
  118. f_FIELDTYPE,
  119. f_DBTYPE,
  120. f_DBLENGTH,
  121. f_DEFAULTVALUE,
  122. f_ENMVALUE,
  123. f_NOTNULL,
  124. f_CLASSID,
  125. f_DBSCALE,
  126. f_CRUSER,
  127. f_CRTIME,
  128. f_VALIDATOR,
  129. f_RADORCHK,
  130. f_NOTEDIT,
  131. f_HIDDENFIELD
  132. );
  133. SET @log_sql = build_migration_log_sql(migr_table_name, @DBFIELDINFOID, now());
  134. prepare stmt from @log_sql;
  135. EXECUTE stmt;
  136. deallocate prepare stmt;
  137. call setOffset(migr_table_name, fieldIdOffset, prevFieldId, @DBFIELDINFOID);
  138. END IF ;
  139. FETCH cur INTO
  140. f_DBFIELDINFOID,
  141. f_TABLENAME,
  142. f_TABLEID,
  143. f_FIELDNAME,
  144. f_ANOTHERNAME,
  145. f_FIELDTYPE,
  146. f_DBTYPE,
  147. f_DBLENGTH,
  148. f_DEFAULTVALUE,
  149. f_ENMVALUE,
  150. f_NOTNULL,
  151. f_CLASSID,
  152. f_DBSCALE,
  153. f_CRUSER,
  154. f_CRTIME,
  155. f_VALIDATOR,
  156. f_RADORCHK,
  157. f_NOTEDIT,
  158. f_HIDDENFIELD
  159. ;
  160. END WHILE;
  161. CLOSE cur;
  162. select concat('完成迁移 ', migr_table_name) info;
  163. END $$
  164. DELIMITER ;