3_sp_data_migration_wcmchannel.sql 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383
  1. DROP PROCEDURE IF EXISTS sp_data_migration_wcmchannel;
  2. DELIMITER $$
  3. CREATE PROCEDURE sp_data_migration_wcmchannel(IN citySuffix VARCHAR(20),
  4. IN prevChnlId BIGINT(20),
  5. IN siteIdOffset BIGINT(20),
  6. IN channelIdOffset BIGINT(20))
  7. BEGIN
  8. DECLARE isover INT DEFAULT 0;
  9. DECLARE migr_table_name varchar(255) DEFAULT 'wcmchannel';
  10. DECLARE site_migr_table_name varchar(255) DEFAULT 'wcmwebsite';
  11. DECLARE f_CHANNELID int DEFAULT 0;
  12. DECLARE f_SITEID int DEFAULT 0;
  13. DECLARE f_CHNLNAME varchar(200) DEFAULT 0;
  14. DECLARE f_CHNLDESC varchar(200) DEFAULT NULL;
  15. DECLARE f_CHNLTABLE varchar(200) DEFAULT NULL;
  16. DECLARE f_CHNLQUERY varchar(500) DEFAULT NULL;
  17. DECLARE f_CHNLPROP int DEFAULT NULL;
  18. DECLARE f_PARENTID int DEFAULT 0;
  19. DECLARE f_CHNLORDER int DEFAULT 0;
  20. DECLARE f_SCHEDULE int DEFAULT NULL;
  21. DECLARE f_CHNLDATAPATH varchar(200) DEFAULT NULL;
  22. DECLARE f_CHNLORDERBY varchar(200) DEFAULT NULL;
  23. DECLARE f_ATTRIBUTE varchar(500) DEFAULT NULL;
  24. DECLARE f_CRUSER varchar(50) DEFAULT NULL;
  25. DECLARE f_CRTIME datetime DEFAULT NULL;
  26. DECLARE f_STATUS int DEFAULT 0;
  27. DECLARE f_CHNLTYPE int DEFAULT 0;
  28. DECLARE f_CHNLOUTLINETEMP int DEFAULT 0;
  29. DECLARE f_CHNLDETAILTEMP int DEFAULT 0;
  30. DECLARE f_PUBLISHPRO smallint(6) DEFAULT 1;
  31. DECLARE f_OPERUSER varchar(50) DEFAULT NULL;
  32. DECLARE f_OPERTIME datetime DEFAULT NULL;
  33. DECLARE f_LINKURL varchar(200) DEFAULT NULL;
  34. DECLARE f_CONTENTADDEDITPAGE varchar(200) DEFAULT NULL;
  35. DECLARE f_CONTENTLISTPAGE varchar(200) DEFAULT NULL;
  36. DECLARE f_CONTENTSHOWPAGE varchar(200) DEFAULT NULL;
  37. DECLARE f_OUTLINEFILEDS varchar(1000) DEFAULT NULL;
  38. DECLARE f_OUTLINEDBFIELDS varchar(1000) DEFAULT NULL;
  39. DECLARE f_ISCLUSTER smallint(6) DEFAULT 0;
  40. DECLARE f_SHOWFIELDS varchar(300) DEFAULT NULL;
  41. DECLARE f_FIELDSWIDTH varchar(200) DEFAULT NULL;
  42. DECLARE f_BASEPROPS varchar(200) DEFAULT NULL;
  43. DECLARE f_OTHERPROPS varchar(200) DEFAULT NULL;
  44. DECLARE f_ADVANCEPROPS varchar(200) DEFAULT NULL;
  45. DECLARE f_TOOLBAR longtext;
  46. DECLARE f_ADVTOOLBAR longtext;
  47. DECLARE f_ISCONTAINSCHILDREN int DEFAULT 0;
  48. DECLARE f_METASYNFIELDS varchar(500) DEFAULT NULL;
  49. DECLARE f_FLUENCEXML longtext;
  50. DECLARE f_USEDOCLEVEL smallint(6) DEFAULT NULL;
  51. DECLARE f_lastmodifytime datetime DEFAULT NULL;
  52. DECLARE f_VIEWPROPS varchar(300) DEFAULT NULL;
  53. DECLARE f_NEEDEDPROPS varchar(300) DEFAULT NULL;
  54. DECLARE f_INHERIT int DEFAULT 0;
  55. DECLARE f_IsSubscribe smallint(6) DEFAULT 0;
  56. DECLARE f_ISPUSHABLE tinyint(4) DEFAULT 0 ;
  57. DECLARE f_ISDISTRIBUTABLE tinyint(4) DEFAULT 0 ;
  58. DECLARE f_CHANNELLOGO varchar(200) DEFAULT NULL;
  59. DECLARE f_SEARCHWORDVALUE varchar(40) DEFAULT NULL;
  60. DECLARE f_CHNLDESCPINYIN varchar(254) DEFAULT NULL;
  61. DECLARE cur CURSOR FOR
  62. SELECT
  63. CHANNELID,
  64. SITEID,
  65. CHNLNAME,
  66. CHNLDESC,
  67. CHNLTABLE,
  68. CHNLQUERY,
  69. CHNLPROP,
  70. PARENTID,
  71. CHNLORDER,
  72. SCHEDULE,
  73. CHNLDATAPATH,
  74. CHNLORDERBY,
  75. ATTRIBUTE,
  76. CRUSER,
  77. CRTIME,
  78. STATUS,
  79. CHNLTYPE,
  80. CHNLOUTLINETEMP,
  81. CHNLDETAILTEMP,
  82. PUBLISHPRO,
  83. OPERUSER,
  84. OPERTIME,
  85. LINKURL,
  86. CONTENTADDEDITPAGE,
  87. CONTENTLISTPAGE,
  88. CONTENTSHOWPAGE,
  89. OUTLINEFILEDS,
  90. OUTLINEDBFIELDS,
  91. ISCLUSTER,
  92. SHOWFIELDS,
  93. FIELDSWIDTH,
  94. BASEPROPS,
  95. OTHERPROPS,
  96. ADVANCEPROPS,
  97. TOOLBAR,
  98. ADVTOOLBAR,
  99. ISCONTAINSCHILDREN,
  100. METASYNFIELDS,
  101. FLUENCEXML,
  102. USEDOCLEVEL,
  103. lastmodifytime,
  104. VIEWPROPS,
  105. NEEDEDPROPS,
  106. INHERIT,
  107. 0,
  108. 0,
  109. 0,
  110. null,
  111. null,
  112. null
  113. FROM wcmchannel
  114. ORDER BY channelid asc;
  115. DECLARE CONTINUE HANDLER FOR NOT FOUND SET isover = 1;
  116. OPEN cur;
  117. FETCH cur INTO
  118. f_CHANNELID,
  119. f_SITEID,
  120. f_CHNLNAME,
  121. f_CHNLDESC,
  122. f_CHNLTABLE,
  123. f_CHNLQUERY,
  124. f_CHNLPROP,
  125. f_PARENTID,
  126. f_CHNLORDER,
  127. f_SCHEDULE,
  128. f_CHNLDATAPATH,
  129. f_CHNLORDERBY,
  130. f_ATTRIBUTE,
  131. f_CRUSER,
  132. f_CRTIME,
  133. f_STATUS,
  134. f_CHNLTYPE,
  135. f_CHNLOUTLINETEMP,
  136. f_CHNLDETAILTEMP,
  137. f_PUBLISHPRO,
  138. f_OPERUSER,
  139. f_OPERTIME,
  140. f_LINKURL,
  141. f_CONTENTADDEDITPAGE,
  142. f_CONTENTLISTPAGE,
  143. f_CONTENTSHOWPAGE,
  144. f_OUTLINEFILEDS,
  145. f_OUTLINEDBFIELDS,
  146. f_ISCLUSTER,
  147. f_SHOWFIELDS,
  148. f_FIELDSWIDTH,
  149. f_BASEPROPS,
  150. f_OTHERPROPS,
  151. f_ADVANCEPROPS,
  152. f_TOOLBAR,
  153. f_ADVTOOLBAR,
  154. f_ISCONTAINSCHILDREN,
  155. f_METASYNFIELDS,
  156. f_FLUENCEXML,
  157. f_USEDOCLEVEL,
  158. f_lastmodifytime,
  159. f_VIEWPROPS,
  160. f_NEEDEDPROPS,
  161. f_INHERIT,
  162. f_IsSubscribe,
  163. f_ISPUSHABLE,
  164. f_ISDISTRIBUTABLE,
  165. f_CHANNELLOGO,
  166. f_SEARCHWORDVALUE,
  167. f_CHNLDESCPINYIN
  168. ;
  169. select concat('开始迁移 ', migr_table_name) info;
  170. WHILE isover = 0 DO
  171. # 断点续传
  172. IF (f_CHANNELID > prevChnlId)
  173. THEN
  174. SET @CHANNELID = f_CHANNELID;
  175. SET f_CHANNELID = f_CHANNELID + channelIdOffset;
  176. 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);
  177. SET f_SITEID = f_SITEID + @site_offset_num;
  178. # 当父栏目为0时,表示根节点
  179. IF (f_PARENTID = 0) THEN
  180. SET f_PARENTID = 0;
  181. else
  182. SET @channel_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = migr_table_name AND start_id < f_PARENTID and end_id >= f_PARENTID), channelIdOffset);
  183. SET f_PARENTID = f_PARENTID + @channel_offset_num;
  184. END IF;
  185. insert into trs_hycloud_iip.wcmchannel
  186. (
  187. CHANNELID,
  188. SITEID,
  189. CHNLNAME,
  190. CHNLDESC,
  191. CHNLTABLE,
  192. CHNLQUERY,
  193. CHNLPROP,
  194. PARENTID,
  195. CHNLORDER,
  196. SCHEDULE,
  197. CHNLDATAPATH,
  198. CHNLORDERBY,
  199. ATTRIBUTE,
  200. CRUSER,
  201. CRTIME,
  202. STATUS,
  203. CHNLTYPE,
  204. CHNLOUTLINETEMP,
  205. CHNLDETAILTEMP,
  206. PUBLISHPRO,
  207. OPERUSER,
  208. OPERTIME,
  209. LINKURL,
  210. CONTENTADDEDITPAGE,
  211. CONTENTLISTPAGE,
  212. CONTENTSHOWPAGE,
  213. OUTLINEFILEDS,
  214. OUTLINEDBFIELDS,
  215. ISCLUSTER,
  216. SHOWFIELDS,
  217. FIELDSWIDTH,
  218. BASEPROPS,
  219. OTHERPROPS,
  220. ADVANCEPROPS,
  221. TOOLBAR,
  222. ADVTOOLBAR,
  223. ISCONTAINSCHILDREN,
  224. METASYNFIELDS,
  225. FLUENCEXML,
  226. USEDOCLEVEL,
  227. lastmodifytime,
  228. VIEWPROPS,
  229. NEEDEDPROPS,
  230. INHERIT,
  231. IsSubscribe,
  232. ISPUSHABLE,
  233. ISDISTRIBUTABLE,
  234. CHANNELLOGO,
  235. SEARCHWORDVALUE,
  236. CHNLDESCPINYIN
  237. )
  238. VALUES
  239. (
  240. f_CHANNELID,
  241. f_SITEID,
  242. f_CHNLNAME,
  243. f_CHNLDESC,
  244. f_CHNLTABLE,
  245. f_CHNLQUERY,
  246. f_CHNLPROP,
  247. f_PARENTID,
  248. f_CHNLORDER,
  249. f_SCHEDULE,
  250. f_CHNLDATAPATH,
  251. f_CHNLORDERBY,
  252. f_ATTRIBUTE,
  253. f_CRUSER,
  254. f_CRTIME,
  255. f_STATUS,
  256. f_CHNLTYPE,
  257. f_CHNLOUTLINETEMP,
  258. f_CHNLDETAILTEMP,
  259. f_PUBLISHPRO,
  260. f_OPERUSER,
  261. f_OPERTIME,
  262. f_LINKURL,
  263. f_CONTENTADDEDITPAGE,
  264. f_CONTENTLISTPAGE,
  265. f_CONTENTSHOWPAGE,
  266. f_OUTLINEFILEDS,
  267. f_OUTLINEDBFIELDS,
  268. f_ISCLUSTER,
  269. f_SHOWFIELDS,
  270. f_FIELDSWIDTH,
  271. f_BASEPROPS,
  272. f_OTHERPROPS,
  273. f_ADVANCEPROPS,
  274. f_TOOLBAR,
  275. f_ADVTOOLBAR,
  276. f_ISCONTAINSCHILDREN,
  277. f_METASYNFIELDS,
  278. f_FLUENCEXML,
  279. f_USEDOCLEVEL,
  280. f_lastmodifytime,
  281. f_VIEWPROPS,
  282. f_NEEDEDPROPS,
  283. f_INHERIT,
  284. f_IsSubscribe,
  285. f_ISPUSHABLE,
  286. f_ISDISTRIBUTABLE,
  287. f_CHANNELLOGO,
  288. f_SEARCHWORDVALUE,
  289. f_CHNLDESCPINYIN
  290. );
  291. SET @log_sql = build_migration_log_sql(migr_table_name, @CHANNELID, now());
  292. prepare stmt from @log_sql;
  293. EXECUTE stmt;
  294. deallocate prepare stmt;
  295. call setOffset(migr_table_name, channelIdOffset, prevChnlId, @CHANNELID);
  296. END IF ;
  297. FETCH cur INTO
  298. f_CHANNELID,
  299. f_SITEID,
  300. f_CHNLNAME,
  301. f_CHNLDESC,
  302. f_CHNLTABLE,
  303. f_CHNLQUERY,
  304. f_CHNLPROP,
  305. f_PARENTID,
  306. f_CHNLORDER,
  307. f_SCHEDULE,
  308. f_CHNLDATAPATH,
  309. f_CHNLORDERBY,
  310. f_ATTRIBUTE,
  311. f_CRUSER,
  312. f_CRTIME,
  313. f_STATUS,
  314. f_CHNLTYPE,
  315. f_CHNLOUTLINETEMP,
  316. f_CHNLDETAILTEMP,
  317. f_PUBLISHPRO,
  318. f_OPERUSER,
  319. f_OPERTIME,
  320. f_LINKURL,
  321. f_CONTENTADDEDITPAGE,
  322. f_CONTENTLISTPAGE,
  323. f_CONTENTSHOWPAGE,
  324. f_OUTLINEFILEDS,
  325. f_OUTLINEDBFIELDS,
  326. f_ISCLUSTER,
  327. f_SHOWFIELDS,
  328. f_FIELDSWIDTH,
  329. f_BASEPROPS,
  330. f_OTHERPROPS,
  331. f_ADVANCEPROPS,
  332. f_TOOLBAR,
  333. f_ADVTOOLBAR,
  334. f_ISCONTAINSCHILDREN,
  335. f_METASYNFIELDS,
  336. f_FLUENCEXML,
  337. f_USEDOCLEVEL,
  338. f_lastmodifytime,
  339. f_VIEWPROPS,
  340. f_NEEDEDPROPS,
  341. f_INHERIT,
  342. f_IsSubscribe,
  343. f_ISPUSHABLE,
  344. f_ISDISTRIBUTABLE,
  345. f_CHANNELLOGO,
  346. f_SEARCHWORDVALUE,
  347. f_CHNLDESCPINYIN
  348. ;
  349. END WHILE;
  350. CLOSE cur;
  351. select concat('完成迁移 ', migr_table_name) info;
  352. END $$
  353. DELIMITER ;