1_data_migration_offset.sql 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. -- 建立offset表,记录迁移的次数、上次迁移的id、偏移量用于增量时能够获取到每次偏移量的变化
  2. CREATE TABLE `data_migration_offset`(
  3. `id` INT(11) NOT NULL COMMENT '数据表ID',
  4. `table_name` VARCHAR(100) NOT NULL COMMENT '迁移的表名',
  5. `offset_num` BIGINT(20) NOT NULL comment '偏移量',
  6. `start_id` BIGINT(20) NOT NULL comment '起始id',
  7. `end_id` BIGINT(20) NOT NULL comment '终止ID',
  8. `crtime` datetime default CURRENT_TIMESTAMP NOT NULL comment '时间',
  9. PRIMARY KEY (`id`)
  10. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  11. CREATE TABLE `meta_data`(
  12. `metadat_id` BIGINT(20) NOT NULL comment '元数据ID',
  13. `channel_id` BIGINT(20) NOT NULL comment '栏目ID',
  14. PRIMARY KEY (`metadat_id`)
  15. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  16. CREATE TABLE `relphoto_doc`(
  17. `docid` BIGINT(20) NOT NULL comment '文档ID',
  18. `appendixids` VARCHAR(400) NOT NULL comment '附件字段',
  19. PRIMARY KEY (`docid`)
  20. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  21. CREATE TABLE `relvideo_doc`(
  22. `docid` BIGINT(20) NOT NULL comment '文档ID',
  23. `appendixids` VARCHAR(400) NOT NULL comment '附件字段',
  24. PRIMARY KEY (`docid`)
  25. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  26. DROP PROCEDURE
  27. IF
  28. EXISTS setOffset;
  29. DELIMITER $$
  30. CREATE PROCEDURE setOffset ( IN t_name VARCHAR ( 100 ), IN _offset BIGINT ( 20 ), IN _start_id BIGINT ( 20 ),
  31. IN _end_id BIGINT ( 20 )
  32. ) BEGIN
  33. SET @id = IFNULL( ( SELECT id FROM data_migration_offset WHERE table_name = t_name AND offset_num = _offset AND start_id = _start_id ), 0 );
  34. IF
  35. @id = 0 THEN
  36. INSERT INTO data_migration_offset ( id, table_name, offset_num, start_id, end_id ) SELECT
  37. IFNULL( max( id ), 0 ) + 1,
  38. t_name,
  39. _offset,
  40. _start_id,
  41. _end_id
  42. FROM
  43. data_migration_offset;
  44. ELSE
  45. UPDATE data_migration_offset
  46. SET end_id = _end_id
  47. WHERE
  48. id = @id ;
  49. END IF;
  50. END $$