mysql多表提取_mysql 从相同类型的多张表中提取到一张表中

这篇博客介绍了如何使用MySQL存储过程将多张结构相同的表数据合并到一张表中,通过创建和执行存储过程,简化了大量重复的SQL操作。首先创建10张测试表并填充数据,然后查询information_schema数据库获取所有表名,再逐个插入到目标表中。
摘要由CSDN通过智能技术生成

有时候需要从多张相同类型的表中提取数据,这些表有一些相同的列或者表结构完全相同,同时表名存在一定的规律,如果表数量少还好,如果表数量多的话则会比较繁琐。可以通过存储过程将多张表的数据提取到一张表的方法来降低工作量。

先创建测试表并生成测试数据。

以下存储过程创建10张测试表,每张表生成10条测试数据。

drop PROCEDURE if EXISTS create10tables;

create PROCEDURE create10tables()

BEGIN

DECLARE t_name VARCHAR(32);

DECLARE i INT;

DECLARE j INT;

DECLARE continue HANDLER for not found set t_name = "";

set i = 0;

set j = 0;

create_loop:LOOP

set i = i + 1;

set t_name = CONCAT("ttest",i);

set @dropsql = CONCAT(‘drop table if EXISTS ‘,t_name);

#select @dropsql;

prepare dropsql from @dropsql;

EXECUTE dropsql;

DEALLOCATE prepare dropsql;

set @createsql = concat(‘create table ‘,t_name,‘ (id int(11) not null auto_increment,modifytime timestam

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值