123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- DROP PROCEDURE IF EXISTS update_data_table;
- DELIMITER $$
- CREATE PROCEDURE update_data_table(
- IN citySuffix VARCHAR(20),
- IN prevtabelId BIGINT(20))
- BEGIN
-
- DECLARE isover INT DEFAULT 0;
- DECLARE table_migr_table_name varchar(255) DEFAULT 'xwcmtableinfo';
- DECLARE f_TABLEINFOID int(11) DEFAULT NULL;
- DECLARE f_TABLENAME varchar(50) DEFAULT NULL;
- DECLARE f_ANOTHERNAME varchar(100) DEFAULT NULL;
- DECLARE f_TABLEDESC varchar(200) DEFAULT NULL;
- DECLARE f_CRUSER varchar(30) DEFAULT NULL;
- DECLARE f_CRTIME datetime DEFAULT NULL;
- DECLARE f_OWNERTYPE int(11) DEFAULT '1';
- DECLARE f_OWNERID int(11) DEFAULT '4';
- DECLARE v_sql longtext DEFAULT '';
- DECLARE cur CURSOR FOR
- SELECT
- TABLEINFOID,
- TABLENAME,
- ANOTHERNAME,
- TABLEDESC,
- CRUSER,
- CRTIME,
- OWNERTYPE,
- OWNERID
- FROM xwcmtableinfo
- ORDER BY TABLEINFOID asc;
- DECLARE CONTINUE HANDLER FOR NOT FOUND SET isover = 1;
- OPEN cur;
- FETCH cur INTO
- f_TABLEINFOID,
- f_TABLENAME,
- f_ANOTHERNAME,
- f_TABLEDESC,
- f_CRUSER,
- f_CRTIME,
- f_OWNERTYPE,
- f_OWNERID
- ;
- set @i = 0;
- WHILE isover= 0 DO
- # 断点续传
- IF (f_TABLEINFOID > prevtabelId)
- THEN
- set @max_dbfieldinfo_id = ifnull((SELECT MAX(DBFIELDINFOID) from xwcmdbfieldinfo), 0);
- set @sql = '';
- call update_data_dbfield(f_TABLENAME, f_TABLEINFOID, @max_dbfieldinfo_id + (@i * 9), @sql);
- set @i = @i + 1;
- set @id_field_sql = concat(' ALTER TABLE wcmmetatable', f_TABLENAME,
- ' CHANGE COLUMN `WCMMetaTable',f_TABLENAME,
- 'ID` `wcmmetatable',f_TABLENAME, citySuffix,
- 'ID` int(11) NOT NULL;');
- set v_sql = concat(v_sql, @sql, @id_field_sql);
- SET @log_sql = build_migration_log_sql('update_data_tabel_id', f_TABLEINFOID, now());
- prepare stmt from @log_sql;
- EXECUTE stmt;
- deallocate prepare stmt;
- END IF ;
- FETCH cur INTO
- f_TABLEINFOID,
- f_TABLENAME,
- f_ANOTHERNAME,
- f_TABLEDESC,
- f_CRUSER,
- f_CRTIME,
- f_OWNERTYPE,
- f_OWNERID
- ;
-
- END WHILE;
- select v_sql info;
- CLOSE cur;
- END $$
- DELIMITER ;
|