mysql下用户库比较多,都有统一的命名格式,希望在这些所有用户库执行脚本,更新数据,或者查询数据

可以采用以下存储过程实现

DROP PROCEDURE IF EXISTS `sp_execalldb`;

CREATE PROCEDURE `sp_execalldb`(p_sql varchar(4000),@p_dbname varchar(128))
BEGIN
drop temporary TABLE if EXISTS `temp_dblist`;
CREATE temporary TABLE `temp_dblist` (
`objid` tinyint NULL AUTO_INCREMENT ,
`dbname` varchar(50) NULL ,
PRIMARY KEY (`objid`)
)
;

insert into temp_dblist(dbname)
select SCHEMA_NAME from information_schema.SCHEMATA where SCHEMA_NAME like concat(@p_dbname,'%');

select count(*) into @rows from temp_dblist;

/*
call wfp.sp_execalldb('select max(EQ0722) from ?.wfpuser_t0404 ;')
*/
set @i=1;
WHILE @i <=@rows DO

-- select dbname from temp_dblist where objid=@i;
select REPLACE( p_sql,'?',dbname) into @tsql from temp_dblist where objid=@i ;
-- select @tsql;
prepare stmt from @tsql;
execute stmt;

set @i=@i+1;

END WHILE;

END;

调用示例

call sp_execalldb('select * from t','edb_a');

如何在MYSQL下所有指定数据库名下执行SQL的更多相关文章

  1. Linux系统下授权MySQL账户访问指定数据库和数据库操作

    Linux系统下授权MySQL账户访问指定数据库 需求: 1.在MySQL中创建数据库mydata 2.新建MySQL账户admin密码123456 3.赋予账户admin对数据库mydata具有完全 ...

  2. mysql数据库批量执行sql文件对数据库进行操作【windows版本】

    起因: 因工作需要,在本机测试环境升级mysql数据库,需逐条执行mysql数据库的sql文件对数据库进行升级,因此找了些关于mysql的文章,对批量升级数据库所需的sql文件进行升级. 整理思路: ...

  3. .net(C#)在Access数据库中执行sql脚本

    自己写的一个工具类,主要是业务场景的需要. 主要有两个功能: ①执行包含sql语句的字符串 ②执行包含sql语句的文件 调用方式 /// <summary> /// 执行sql语句 /// ...

  4. 通过MyEclipse工具直接操作数据库,执行sql语句,方便快捷

    原文:通过MyEclipse工具直接操作数据库,执行sql语句,方便快捷 通过MyEclipse操作数据库,执行sql语句使我们不用切换多个工具,直接工作,方便快捷.效果如下: 步骤1:通过MyEcl ...

  5. 通过MyEclipse操作数据库,执行sql语句使我们不用切换多个工具,直接工作,方便快捷

    通过MyEclipse操作数据库,执行sql语句使我们不用切换多个工具,直接工作,方便快捷.效果如下:     步骤1:通过MyEclipse中的window->show View->ot ...

  6. 20191217-关于JPA @Query查询数据一直为空,直接在数据库里执行SQL则可以查出来

    20191217-关于JPA @Query查询数据一直为空,直接在数据库里执行SQL则可以查出来 前提:数据库中查询,由于在视图中无主键概念,只是在代码中由逻辑主键.结果:数据中作为逻辑主键中有个字段 ...

  7. 【jdbc访问数据库获取执行sql转换json】

    Talk is cheap.Show me your code. import java.sql.*; import java.util.HashMap; import java.util.Map; ...

  8. mysql操作命令梳理(5)-执行sql语句查询即mysql状态说明

    在日常mysql运维中,经常要查询当前mysql下正在执行的sql语句及其他在跑的mysql相关线程,这就用到mysql processlist这个命令了.mysql> show process ...

  9. mysql导出部分(指定)数据库表字段

      需要导出某个表中的部分字段信息 之前导出数据库表一直使用mysqldump命令,例如: mysqldump -hIP -uroot -P3306 -p 库 表 > 名字.sql 但是如果导出 ...

随机推荐

  1. Djang的model创建的字段和参数复习

    class test_orm(models.Model): id = models.AutoField(primary_key=True) # int自增列,必须填入参数primary_key=Tru ...

  2. Java 微服务框架选型 Dubbo 和 Spring Cloud

    微服务(Microservices)是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成.系统中的各个微服务可被独立部署,各个微服务之间是松耦合的.每个微服务仅关注于完成一件任务并很好地完成该任 ...

  3. ABAP开发需要养成的习惯—变量定义

    变量定义 Global variables are BAD 定义内表先在程序开头定义types,如 types: begin of ty_structure,         id type i,   ...

  4. Requested a new session but one was in progress

    作为appium初学者,估计很多人都会遇到这个错误.如何解决: 1.环境变量中去掉appium的安装路径,添加Appium\node_modules\.bin这个路径进去. 2.启动cmd 输入app ...

  5. TLS1.1升级到TLS1.2(微信小程序要求TLS1.2以上)

    检测是否具有TLS1.2:www.ssllabs.com 实验过的办法: https://www.cnblogs.com/wqcheng/p/6618070.html http://www.ocbc. ...

  6. vue 动态修改el-upload 的action

    action是一个必填参数,且其类型为string,我们把action写成:action,然后后面跟着一个方法名,调用方法,返回你想要的地址,代码示例: //html 代码 <el-upload ...

  7. 4. 深入 Python 流程控制

    除了前面介绍的 while 语句,Python 还从其它语言借鉴了一些流程控制功能,并有所改变. 4.1. if 语句 也许最有名的是 if 语句.例如: >>> x = int(i ...

  8. waf相关

    google上搜索下面信息: waf site:klionsec.github.io 有几篇比较有意思的问题: https://klionsec.github.io/2017/07/09/nginx- ...

  9. nodejs 如何操作字节在内存中的位置问题 BE LE

    上代码 function testNumber() { var arr = new Int32Array(1); arr[0] = 1234; var buf1 = Buffer.from(arr); ...

  10. Tinyos学习笔记(二)

    1.TinyOS communication tools java serialApp -comm serial@/dev/ttyUSB0:telosb java net.tinyos.tools.L ...