3_sp_data_migration_mas_masid.sql 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. DROP PROCEDURE IF EXISTS sp_data_migration_masid;
  2. DELIMITER $$
  3. CREATE PROCEDURE sp_data_migration_masid(IN prevMasId BIGINT(20),
  4. IN masIdOffset BIGINT(20))
  5. BEGIN
  6. DECLARE isover INT DEFAULT 0;
  7. DECLARE migr_table_name varchar(255) DEFAULT 'mas_masid';
  8. DECLARE f_ID int(11) DEFAULT NULL;
  9. DECLARE f_CREATEDTIME BIGINT(20) DEFAULT NULL;
  10. DECLARE f_CREATEDUSER varchar(255) DEFAULT NULL;
  11. DECLARE f_CREATEDUSERID int(11) DEFAULT NULL;
  12. DECLARE f_CREATEDUSERNICKNAME varchar(255) DEFAULT NULL;
  13. DECLARE f_LASTMODIFIEDTIME bigint DEFAULT NULL;
  14. DECLARE f_LASTMODIFIEDUSER varchar(255) DEFAULT NULL;
  15. DECLARE f_LASTMODIFIEDUSERID int(11) DEFAULT NULL;
  16. DECLARE f_srcObjType varchar(255) DEFAULT NULL;
  17. DECLARE cur CURSOR FOR
  18. SELECT
  19. ID,
  20. CREATEDTIME,
  21. CREATEDUSER,
  22. CREATEDUSERID,
  23. CREATEDUSERNICKNAME,
  24. LASTMODIFIEDTIME,
  25. LASTMODIFIEDUSER,
  26. LASTMODIFIEDUSERID,
  27. srcObjType
  28. FROM mas_masid
  29. ORDER BY ID asc;
  30. DECLARE CONTINUE HANDLER FOR NOT FOUND SET isover = 1;
  31. OPEN cur;
  32. FETCH cur INTO
  33. f_ID,
  34. f_CREATEDTIME,
  35. f_CREATEDUSER,
  36. f_CREATEDUSERID,
  37. f_CREATEDUSERNICKNAME,
  38. f_LASTMODIFIEDTIME,
  39. f_LASTMODIFIEDUSER,
  40. f_LASTMODIFIEDUSERID,
  41. f_srcObjType
  42. ;
  43. select concat('开始迁移 ', migr_table_name) info;
  44. WHILE isover= 0 DO
  45. # 断点续传
  46. IF (f_ID > prevMasId)
  47. THEN
  48. SET @ID = f_ID;
  49. SET f_ID = f_ID + masIdOffset;
  50. insert into trs_mas.mas_masid
  51. (
  52. ID,
  53. CREATEDTIME,
  54. CREATEDUSER,
  55. CREATEDUSERID,
  56. CREATEDUSERNICKNAME,
  57. LASTMODIFIEDTIME,
  58. LASTMODIFIEDUSER,
  59. LASTMODIFIEDUSERID,
  60. srcObjType
  61. )
  62. VALUES
  63. (
  64. f_ID,
  65. f_CREATEDTIME,
  66. f_CREATEDUSER,
  67. f_CREATEDUSERID,
  68. f_CREATEDUSERNICKNAME,
  69. f_LASTMODIFIEDTIME,
  70. f_LASTMODIFIEDUSER,
  71. f_LASTMODIFIEDUSERID,
  72. f_srcObjType
  73. );
  74. SET @log_sql = build_migration_log_sql(migr_table_name, @ID, now());
  75. prepare stmt from @log_sql;
  76. EXECUTE stmt;
  77. deallocate prepare stmt;
  78. call setOffset(migr_table_name, masIdOffset, prevMasId, @ID);
  79. END IF ;
  80. FETCH cur INTO
  81. f_ID,
  82. f_CREATEDTIME,
  83. f_CREATEDUSER,
  84. f_CREATEDUSERID,
  85. f_CREATEDUSERNICKNAME,
  86. f_LASTMODIFIEDTIME,
  87. f_LASTMODIFIEDUSER,
  88. f_LASTMODIFIEDUSERID,
  89. f_srcObjType
  90. ;
  91. END WHILE;
  92. CLOSE cur;
  93. select concat('完成迁移 ', migr_table_name) info;
  94. END $$
  95. DELIMITER ;