0_update_data_relation_appendix_2.sql 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. DROP PROCEDURE IF EXISTS update_data_relation_appendix_2;
  2. DELIMITER $$
  3. CREATE PROCEDURE update_data_relation_appendix_2(
  4. IN citySuffix VARCHAR(20),
  5. IN preTableId BIGINT(20),
  6. IN preDocId BIGINT(20))
  7. BEGIN
  8. DECLARE isover INT DEFAULT 0;
  9. DECLARE f_DBFIELDINFOID int(11) DEFAULT NULL;
  10. DECLARE f_TABLENAME varchar(50) DEFAULT '0';
  11. DECLARE f_TABLEID int(11) DEFAULT '0';
  12. DECLARE f_FIELDNAME varchar(50) DEFAULT '0';
  13. DECLARE f_ANOTHERNAME varchar(200) DEFAULT '0';
  14. DECLARE f_FIELDTYPE int(11) DEFAULT '0';
  15. DECLARE f_DBTYPE int(11) DEFAULT '0';
  16. DECLARE f_DBLENGTH int(11) DEFAULT '0';
  17. DECLARE f_DEFAULTVALUE varchar(200) DEFAULT NULL;
  18. DECLARE f_ENMVALUE varchar(1000) DEFAULT NULL;
  19. DECLARE f_NOTNULL smallint(6) DEFAULT NULL;
  20. DECLARE f_CLASSID int(11) DEFAULT '0';
  21. DECLARE f_DBSCALE int(11) DEFAULT '0';
  22. DECLARE f_CRUSER varchar(30) DEFAULT NULL;
  23. DECLARE f_CRTIME datetime DEFAULT NULL;
  24. DECLARE f_VALIDATOR varchar(200) DEFAULT NULL;
  25. DECLARE f_RADORCHK smallint(6) DEFAULT NULL;
  26. DECLARE f_NOTEDIT smallint(6) DEFAULT '0';
  27. DECLARE f_HIDDENFIELD smallint(6) DEFAULT '0';
  28. DECLARE cur CURSOR FOR
  29. SELECT
  30. DBFIELDINFOID,
  31. TABLENAME,
  32. TABLEID,
  33. FIELDNAME,
  34. ANOTHERNAME,
  35. FIELDTYPE,
  36. DBTYPE,
  37. DBLENGTH,
  38. DEFAULTVALUE,
  39. ENMVALUE,
  40. NOTNULL,
  41. CLASSID,
  42. DBSCALE,
  43. CRUSER,
  44. CRTIME,
  45. VALIDATOR,
  46. RADORCHK,
  47. NOTEDIT,
  48. HIDDENFIELD
  49. FROM xwcmdbfieldinfo
  50. where FIELDTYPE in (32, 20)
  51. ORDER BY TABLEID asc;
  52. DECLARE CONTINUE HANDLER FOR NOT FOUND SET isover = 1;
  53. OPEN cur;
  54. FETCH cur INTO
  55. f_DBFIELDINFOID,
  56. f_TABLENAME,
  57. f_TABLEID,
  58. f_FIELDNAME,
  59. f_ANOTHERNAME,
  60. f_FIELDTYPE,
  61. f_DBTYPE,
  62. f_DBLENGTH,
  63. f_DEFAULTVALUE,
  64. f_ENMVALUE,
  65. f_NOTNULL,
  66. f_CLASSID,
  67. f_DBSCALE,
  68. f_CRUSER,
  69. f_CRTIME,
  70. f_VALIDATOR,
  71. f_RADORCHK,
  72. f_NOTEDIT,
  73. f_HIDDENFIELD
  74. ;
  75. WHILE isover= 0 DO
  76. # 断点续传
  77. IF (f_TABLEID > preTableId)
  78. THEN
  79. SET @metaTableExists = (SELECT count(1) from information_schema.tables where table_schema = 'trs_hycloud_iip' and table_name = concat('wcmmetatable', f_TABLENAME, citySuffix) );
  80. select CONCAT('开始更新 :', @metaTableExists, '====:','wcmmetatable', f_TABLENAME, citySuffix, '-字段名称:', f_FIELDNAME, ';字段类型:', f_FIELDTYPE) info;
  81. IF (@metaTableExists > 0)
  82. then
  83. #相关图片
  84. if (f_FIELDTYPE = 32)
  85. then
  86. set @u_p_sql = CONCAT('UPDATE trs_hycloud_iip.wcmmetatable',f_TABLENAME, citySuffix,' a,
  87. relphoto_doc b
  88. SET a.',f_FIELDNAME,' = b.appendixids
  89. WHERE a.MetaDataId = b.docid and a.MetaDataId > ',preDocId,' ;');
  90. prepare stmt from @u_p_sql;
  91. EXECUTE stmt;
  92. deallocate prepare stmt;
  93. end if;
  94. #相关视频
  95. if (f_FIELDTYPE = 20)
  96. then
  97. set @u_v_sql = CONCAT('UPDATE trs_hycloud_iip.wcmmetatable',f_TABLENAME, citySuffix,' a,
  98. relvideo_doc b
  99. SET a.',f_FIELDNAME,' = b.appendixids
  100. WHERE a.MetaDataId = b.docid and a.MetaDataId > ',preDocId,' ;');
  101. prepare stmt from @u_v_sql;
  102. EXECUTE stmt;
  103. deallocate prepare stmt;
  104. end if;
  105. SET @log_sql = build_migration_log_sql('update_data_ralation_appendix', preTableId, now());
  106. prepare stmt from @log_sql;
  107. EXECUTE stmt;
  108. deallocate prepare stmt;
  109. end if;
  110. END IF ;
  111. FETCH cur INTO
  112. f_DBFIELDINFOID,
  113. f_TABLENAME,
  114. f_TABLEID,
  115. f_FIELDNAME,
  116. f_ANOTHERNAME,
  117. f_FIELDTYPE,
  118. f_DBTYPE,
  119. f_DBLENGTH,
  120. f_DEFAULTVALUE,
  121. f_ENMVALUE,
  122. f_NOTNULL,
  123. f_CLASSID,
  124. f_DBSCALE,
  125. f_CRUSER,
  126. f_CRTIME,
  127. f_VALIDATOR,
  128. f_RADORCHK,
  129. f_NOTEDIT,
  130. f_HIDDENFIELD
  131. ;
  132. END WHILE;
  133. CLOSE cur;
  134. select CONCAT('update_data_relation_appendix_2 执行完成') info;
  135. END $$
  136. DELIMITER ;