环境:mysql版本 5.7.42
step1 备份源表
将源表备份,此处命名为table_source
step2 创建新表
创建新表,此处命名为table_target
setp3 创建存储过程
DROP PROCEDURE if EXISTS copyTable;
-- 创建存储过程
delimiter $
CREATE PROCEDURE copyTable()
BEGIN
DECLARE v_id int(11);
DECLARE v_name varchar(100);
DECLARE v_create_time datetime;
-- 游标
DECLARE cur CURSOR FOR SELECT id, name, create_time FROM table_source;
-- 开启游标
OPEN cur;
-- 循环处理
read_loop: LOOP
FETCH cur INTO v_id, v_name, v_create_time;
-- 插入数据到新表
INSERT INTO table_target(id, name, v_create_time)
VALUES (v_id, v_name, v_create_time);
END LOOP;
CLOSE cur;
END $
delimiter ;
step4 执行存储过程
-- 调用
CALL copyTable();
step5 删除存储过程
因为本次操作为一次性操作,所以删除存储过程
DROP PROCEDURE if EXISTS copyAppVersion;