mysql将所有数据库的表的相同字段更新为某一值

1、创建存储过程
函数名为:proc_update_client_id
CREATE PROCEDURE `proc_update_client_id`( )
BEGIN
-- 定于全局变量tableName,就是循环时的表名
DECLARE tableName VARCHAR (200);
-- 定义全局变量sql,就是每次循环执行的sql语句
DECLARE sqls VARCHAR ( 200 );
-- 定于全局变量done,默认为false,如果循环完毕,值变为true
DECLARE done INT DEFAULT FALSE;
-- 定于全局变量,要更新的值
DECLARE clientId VARCHAR(200); -- 声明游标,游标对应的结果集为查询出的所有符合条件的表名,
-- 下面的select语句为查询表名,其中的TABLE_SCHEMA就是数据库名
DECLARE cursor_name CURSOR FOR
SELECT
CONCAT(tab.TABLE_SCHEMA,'.',col.table_name)
FROM
information_schema.TABLES tab
LEFT JOIN information_schema.COLUMNS col ON col.table_name = tab.table_name
WHERE
table_type = 'BASE TABLE'
AND col.column_name = 'client_id';
-- 当循环结束后,就把全局变量done设置为true
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
-- 设置更新的值
SET clientId = 'bankdev';
-- 打开游标
OPEN cursor_name;
my_loop:LOOP

-- 游标当前指向的一条数据赋值给tableName
FETCH cursor_name INTO tableName;
-- 修改表的数据的sql
SET sqls = CONCAT( ' update ', tableName, ' set client_id = "',clientId,'"');
-- 把要执行的sql语句赋值给@a变量
SET @a = sqls;
-- 预处理语句
PREPARE stmt1 FROM @a;
-- 执行预处理语句
EXECUTE stmt1;
-- 删除预处理语句
DEALLOCATE PREPARE stmt1;
-- 每次检查done变量,如果为true,就跳出循环
IF done THEN LEAVE my_loop;
END IF;
-- 结束循环
END LOOP;
-- 关闭游标
CLOSE cursor_name;
END

 2、执行存储过程 

call proc_update_client_id()

3、删除存储过程
drop procedure proc_update_client_id;

  

最新文章

  1. Android无线开发的几种常用技术(阿里巴巴资深工程师原创分享)
  2. 教你理解Fragment
  3. GCD中使用dispatch_after函数延迟处理任务
  4. Unity Sample Bootcamp
  5. 19、文件上传与下载/JavaMail邮件开发
  6. WS之cxf处理的复杂类型(Map)
  7. 新做的H5页面(具体应该说是百分比页面)
  8. .NET架构师技能体系
  9. ruby编程语言-学习笔记2(第4章 表达式和操作符)
  10. oracle 语句汇总
  11. android ApplicationContext Context Activity 内存的一些学习
  12. linux虚拟化概述
  13. PHP判断客户端是否使用代理服务器及其匿名级别
  14. .net自定义错误页面实现升级篇
  15. 比较爬虫用的语言Python与Go
  16. HTTP 协议基础概念和报文结构
  17. [ZJOI2005]午餐
  18. C语言学习记录_2019.02.07
  19. myeclipse(eclipse)IDE配置
  20. python教程(三)·函数进阶(上)

热门文章

  1. 【PyCharm】配置 Git
  2. Ubuntu上安装TensorFlow
  3. 这个博客几乎包括了Makefile中的所有 $ 符号解释
  4. 流(stream)如何理解?
  5. 2022-05-16内部群每日三题-清辉PMP
  6. PHP接口微信支付
  7. CSS实现开门效果
  8. vue创建模板
  9. Pytorch之数据处理
  10. Selenium私房菜系列7 -- 深入了解Selenium RC工作原理(2)【II】