mysql 存储过程实现从一张表数据迁移到另一种表

通过存储过程迁移数据:

创建表

CREATE TABLE `test1` (
  `idp` varchar(255) DEFAULT NULL,
  `brandIdp` varchar(255) DEFAULT NULL,
  `namep` varchar(1000) DEFAULT NULL,
  `urlp` varchar(1000) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=keybcs2;
INSERT INTO `test1` VALUES ('1001', '3004', 'lili', 'www.baidu.com');
INSERT INTO `test1` VALUES ('1002', '3005', 'lucy', 'www.baidu.com');
INSERT INTO `test1` VALUES ('1003', '3004', 'lile', 'www.baidu.com');

CREATE TABLE `test2` (
  `idp` varchar(255) DEFAULT NULL,
  `brandIdp` varchar(255) DEFAULT NULL,
  `namep` varchar(1000) DEFAULT NULL,
  `urlp` varchar(1000) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=keybcs2;

CREATE TABLE `test3` (
  `idp` varchar(255) DEFAULT NULL,
  `brandIdp` varchar(255) DEFAULT NULL,
  `namep` varchar(1000) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=keybcs2;

建立存储过程:

drop PROCEDURE IF EXISTS p;
CREATE PROCEDURE p()
BEGIN

-- 需要定义接收游标数据的变量
DECLARE idp VARCHAR(255);
DECLARE brandIdp VARCHAR(255);
DECLARE namep VARCHAR(1000);
DECLARE urlp VARCHAR(1000);

-- 遍历数据结束标志
DECLARE done INT DEFAULT FALSE;

DECLARE cur CURSOR FOR SELECT
test1.idp,
test1.brandIdp,
test1.namep,
test1.urlp 
from test1;

-- 将结束标志绑定到游标
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;

-- 打开游标
OPEN cur;

-- 开始循环
read_loop: LOOP

-- 提取游标里的数据
FETCH cur INTO idp,brandIdp,namep,urlp;

-- 声明结束的时候
IF done THEN

LEAVE read_loop;

END IF;

-- 这里做你想做的循环的事件
INSERT INTO test2 VALUES (idp,brandIdp,namep,urlp);
INSERT INTO test3 VALUES (idp,brandIdp,namep);

END LOOP;

-- 关闭游标
CLOSE cur;

END

执行存储过程

call p

结果

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Shell脚本是一种用来自动完成系统管理任务的脚本语言,可用于实现数据迁移。通常使用其他编程语言(如Perl、Python等)编写Shell脚本,它们可以操作文件、管理进程、访问系统函数等,从而实现数据迁移。 ### 回答2: 数据迁移是将数据一个存储系统(如数据库、文件系统)中转移到另一个存储系统的过程。而Shell脚本是一种在Unix或类Unix系统中运行的命令语言解释器,可用于自动化执行各种任务。 要实现数据迁移的Shell脚本,我们可以按照以下步骤进行: 1. 确定迁移源和目标:首先,我们需要确定要迁移数据源和迁移的目标位置。可以是不同的数据库类型、文件系统,甚至两个不同的服务器。 2. 连接到源数据库或文件系统:使用Shell脚本中适当的命令(如mysql命令)或工具(如rsync命令)连接到源数据库或文件系统。 3. 选择要迁移数据:根据需求,选择要迁移的特定数据集。可以是全部数据,也可以是根据特定条件进行筛选。 4. 数据导出:使用适当的命令或工具,将选择的数据从源数据库或文件系统导出为数据文件。例如,可以使用mysqldump命令导出MySQL数据库中的数据,使用tar命令将选定的文件打包成tar文件。 5. 连接到目标数据库或文件系统:同样,使用Shell脚本中适当的命令或工具,连接到目标数据库或文件系统。 6. 数据导入:将导出的数据文件导入到目标数据库或文件系统中。使用适当的命令或工具(如mysql命令、cp命令)将数据文件导入到目标位置。 7. 验证数据迁移:对目标位置中的数据进行验证,确保所有数据已正确迁移。可以使用Shell脚本中适当的命令或工具,进行数据对比或验证。 8. 清理:清理导出的数据文件或其他临时文件,确保迁移过程完成后不会留下冗余文件。 以上步骤仅作为实现数据迁移的示例,具体实现可能因为迁移数据类型、源和目标系统的不同而有所差异。可以根据具体需求进行调整和优化。 ### 回答3: Shell脚本是一种用于自动化任务的脚本语言,可以通过编写一系列的指令和命令来实现特定的功能。在数据迁移方面,Shell脚本可以帮助我们将数据一个地方迁移到另一个地方,下面是一个例子: 假设我们需要将一个目录中的所有文件迁移到另一个目录中: 1. 首先,我们可以使用`ls`命令来列出原始目录中的所有文件,例如`source_dir`。 ```bash files=$(ls source_dir) ``` 2. 接下来,我们可以使用循环来遍历这些文件,并将它们逐个复制到目标目录中(假设目标目录为`target_dir`)。 ```bash for file in $files do cp source_dir/$file target_dir done ``` 3. 完成以上步骤后,我们可以验证数据迁移是否成功。可以使用`ls`命令来列出目标目录中的所有文件。 ```bash ls target_dir ``` 通过以上的脚本,我们可以将源目录中的所有文件复制到目标目录中,实现数据迁移。 需要注意的是,在实际的数据迁移过程中,可能还需要处理一些特殊情况,比如目录结构、权限等方面的调整。因此,以上只是一个简单的示例,实际的数据迁移脚本需要根据具体的需求进行适当的优化和修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不会叫的狼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值