123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194 |
- DROP PROCEDURE IF EXISTS sp_data_migration_xwcmdbfieldinfo;
- DELIMITER $$
- CREATE PROCEDURE sp_data_migration_xwcmdbfieldinfo(IN citySuffix VARCHAR(20),
- IN prevFieldId BIGINT(20),
- IN fieldIdOffset BIGINT(20),
- IN classInfoIdOffset BIGINT(20),
- IN tableIdOffset BIGINT(20))
- BEGIN
-
- DECLARE isover INT DEFAULT 0;
- DECLARE migr_table_name varchar(255) DEFAULT 'xwcmdbfieldinfo';
- DECLARE tabel_migr_table_name varchar(255) DEFAULT 'xwcmtableinfo';
- DECLARE class_igr_table_name varchar(255) DEFAULT 'xwcmclassinfo';
- DECLARE f_DBFIELDINFOID int(11) DEFAULT NULL;
- DECLARE f_TABLENAME varchar(50) DEFAULT '0';
- DECLARE f_TABLEID int(11) DEFAULT '0';
- DECLARE f_FIELDNAME varchar(50) DEFAULT '0';
- DECLARE f_ANOTHERNAME varchar(200) DEFAULT '0';
- DECLARE f_FIELDTYPE int(11) DEFAULT '0';
- DECLARE f_DBTYPE int(11) DEFAULT '0';
- DECLARE f_DBLENGTH int(11) DEFAULT '0';
- DECLARE f_DEFAULTVALUE varchar(200) DEFAULT NULL;
- DECLARE f_ENMVALUE varchar(1000) DEFAULT NULL;
- DECLARE f_NOTNULL smallint(6) DEFAULT NULL;
- DECLARE f_CLASSID int(11) DEFAULT '0';
- DECLARE f_DBSCALE int(11) DEFAULT '0';
- DECLARE f_CRUSER varchar(30) DEFAULT NULL;
- DECLARE f_CRTIME datetime DEFAULT NULL;
- DECLARE f_VALIDATOR varchar(200) DEFAULT NULL;
- DECLARE f_RADORCHK smallint(6) DEFAULT NULL;
- DECLARE f_NOTEDIT smallint(6) DEFAULT '0';
- DECLARE f_HIDDENFIELD smallint(6) DEFAULT '0';
- DECLARE cur CURSOR FOR
- SELECT
- DBFIELDINFOID,
- TABLENAME,
- TABLEID,
- FIELDNAME,
- ANOTHERNAME,
- FIELDTYPE,
- DBTYPE,
- DBLENGTH,
- DEFAULTVALUE,
- ENMVALUE,
- NOTNULL,
- CLASSID,
- DBSCALE,
- CRUSER,
- CRTIME,
- VALIDATOR,
- RADORCHK,
- NOTEDIT,
- HIDDENFIELD
- FROM xwcmdbfieldinfo
- ORDER BY DBFIELDINFOID asc;
- DECLARE CONTINUE HANDLER FOR NOT FOUND SET isover = 1;
-
- OPEN cur;
-
- FETCH cur INTO
- f_DBFIELDINFOID,
- f_TABLENAME,
- f_TABLEID,
- f_FIELDNAME,
- f_ANOTHERNAME,
- f_FIELDTYPE,
- f_DBTYPE,
- f_DBLENGTH,
- f_DEFAULTVALUE,
- f_ENMVALUE,
- f_NOTNULL,
- f_CLASSID,
- f_DBSCALE,
- f_CRUSER,
- f_CRTIME,
- f_VALIDATOR,
- f_RADORCHK,
- f_NOTEDIT,
- f_HIDDENFIELD
- ;
- select concat('开始迁移 ', migr_table_name) info;
- WHILE isover= 0 DO
- # 断点续传
- IF (f_DBFIELDINFOID > prevFieldId)
- THEN
- SET @DBFIELDINFOID = f_DBFIELDINFOID;
- SET f_DBFIELDINFOID = f_DBFIELDINFOID + fieldIdOffset;
- 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);
- SET f_TABLEID = f_TABLEID + @table_offset_num;
- 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);
- SET f_CLASSID = f_CLASSID + @class_offset_num;
- insert into trs_hycloud_iip.xwcmdbfieldinfo
- (
- DBFIELDINFOID,
- TABLENAME,
- TABLEID,
- FIELDNAME,
- ANOTHERNAME,
- FIELDTYPE,
- DBTYPE,
- DBLENGTH,
- DEFAULTVALUE,
- ENMVALUE,
- NOTNULL,
- CLASSID,
- DBSCALE,
- CRUSER,
- CRTIME,
- VALIDATOR,
- RADORCHK,
- NOTEDIT,
- HIDDENFIELD
- )
- VALUES
- (
- f_DBFIELDINFOID,
- concat(f_TABLENAME, citySuffix),
- f_TABLEID,
- f_FIELDNAME,
- f_ANOTHERNAME,
- f_FIELDTYPE,
- f_DBTYPE,
- f_DBLENGTH,
- f_DEFAULTVALUE,
- f_ENMVALUE,
- f_NOTNULL,
- f_CLASSID,
- f_DBSCALE,
- f_CRUSER,
- f_CRTIME,
- f_VALIDATOR,
- f_RADORCHK,
- f_NOTEDIT,
- f_HIDDENFIELD
- );
- SET @log_sql = build_migration_log_sql(migr_table_name, @DBFIELDINFOID, now());
- prepare stmt from @log_sql;
- EXECUTE stmt;
- deallocate prepare stmt;
- call setOffset(migr_table_name, fieldIdOffset, prevFieldId, @DBFIELDINFOID);
- END IF ;
- FETCH cur INTO
- f_DBFIELDINFOID,
- f_TABLENAME,
- f_TABLEID,
- f_FIELDNAME,
- f_ANOTHERNAME,
- f_FIELDTYPE,
- f_DBTYPE,
- f_DBLENGTH,
- f_DEFAULTVALUE,
- f_ENMVALUE,
- f_NOTNULL,
- f_CLASSID,
- f_DBSCALE,
- f_CRUSER,
- f_CRTIME,
- f_VALIDATOR,
- f_RADORCHK,
- f_NOTEDIT,
- f_HIDDENFIELD
- ;
-
- END WHILE;
-
- CLOSE cur;
- select concat('完成迁移 ', migr_table_name) info;
- END $$
- DELIMITER ;
|