修改mysql多个表的相同字段为同一值内容
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;
修改mysql多个表的相同字段为同一值内容的更多相关文章
- mysql中大数据表alter增加字段报错:"1034 Incorrect key file for table 'table_name'; try to repair it"
mysql中大数据表alter增加字段报错:"1034 Incorrect key file for table 'table_name'; try to repair it" 现 ...
- MySQL为数据表的指定字段插入数据
username not null 没有默认值/有默认值 insert不插入username字段 均不报错 2014年07月23日21:05 百科369 MySQL为数据表的指定字段插入数据 ...
- MySQL获取Schema表名和字段信息
MySQL获取Schema表名和字段信息 获取表名 select TABLE_NAME,TABLE_TYPE,ENGINE,TABLE_ROWS,TABLE_COMMENT,CREATE_TIME,U ...
- mysql下的将多个字段名的值复制到另一个字段名中(批量更新数据)字符串拼接cancat实战例子
mysql下的将多个字段名的值复制到另一个字段名中(批量更新数据)mysql字符串拼接cancat实战例子: mysql update set 多个字段相加,如果是数字相加可以直接用+号(注:hund ...
- mysql修改表中某个字段的默认值
Mysql中用SQL增加.删除字段,修改字段名.字段类型.注释,调整字段顺序总结 在网站重构中,通常会进行数据结构的修改,所以添加,删除,增加mysql表的字段是难免的,有时为了方便,还会增加修改 ...
- mysql数据库之表操作及字段约束条件
目录 一.存储引擎 二.表介绍 三.创建表 四.查看表结构 五.数据类型 一.介绍 二.数值类型 整数类型 浮点型 三.字符串类型 四.日期类型 五.枚举类型与集合类型 六.约束条件 七.修改表 al ...
- mysql,user表中各字段的含义
1.查询user表 select * from mysql.user 2.修改用户密码 ALTER user ' 3.user表中各字段的含义 Select_priv:用户可以通过SELECT命令选择 ...
- MySQL向数据库表的某字段追加数据
使用CONCAT()函数 mysql向表中某字段后追加一段字符串(field为字段名): update table_name set field=CONCAT(field,'str',) mysql ...
- MySQL slow_log日志表出现非法字段值
背景 从mysql.slow_log 获取慢查询日志很慢,该表是csv表,没有索引. 想添加索引来加速访问,而csv引擎不能添加索引(csv引擎存储是以逗号分割的文本来存储的),只能改存储引擎来添加索 ...
- Mysql查询数据库表结构以及字段类型并展示
1.建表语句sys_user CREATE TABLE `sys_user` ( `id` varchar(32) NOT NULL COMMENT '编号', `dept_id` varchar(3 ...
随机推荐
- Linux操作命令(一)1.ls命令 2.cd命令 3.pwd命令
1.ls 命令 ls 命令就是 list 的缩写, ls 用来打印出当前目录的清单. 参数 描述 -a –all 列出目录下的所有文件,包括以 . 开头的隐含文件 -l 除了文件名之外,还将文件的权限 ...
- 一台电脑连接多个不同IP段
1.首先让电脑能联网,则在ipv4里面设置好能上网的ip地址,dns则为路由器ip 备用dns8.8.8.8 2.点击高级依次添加其他内网ip段 例如192.168.0.66 ----------19 ...
- windows自带xbox game bar如何更改录制视频保存位置
若要更改保存游戏剪辑的位置,请使用文件资源管理器根据需要将"捕获"文件夹移动到电脑上的任意位置. Windows 会将游戏剪辑和屏幕截图保存在该文件夹中(无论移动到哪里). ...
- C++ MFC学习 (一)
MFC:微软基础类库,以C++形式封装了WindowsAPI,并且包含一个应用程序框架,以减少应用程序开发人员的工作量. 其中包含的类包含大量Windows句柄封装类和很多Windows的内建控 ...
- Java异常之Error和Exception
异常Exception 实际工作中,遇到的情况不可能是非常完美的.比如:你写的某个模块,用户输入不一定符合你的要求.你的程序要打开某个文件,这个文件可能不存在或者文件格式不对,你要读取数据库的数据,数 ...
- WPF ItemsControl Command 绑定操作
视图模型: using System.Collections.ObjectModel; using System.Diagnostics; using System.Windows.Input; us ...
- Oracle 验证身份证号
--验证身份证号是否正确CREATE OR REPLACE FUNCTION fn_checkidcard (p_idcard IN VARCHAR2) RETURN INT IS v_regstr ...
- .net core格式化响应数据(json驼峰格式)
//表格字段都是大写的 想要实现首字母小写(特定操作配置输出序列化选项)[HttpPost, ActionName("QueryAll")] public ActionResult ...
- win10 系统修复IE11方法
我也是手贱卸载了IE11,启用或关闭Windows功能里也没有Internet Explorer 11,今天意外发现了解决办法. 设置--应用--应用和功能--管理可选功能--添加功能--Intern ...
- OS-lab2
OS-lab2 启动之后,我们的操作系统要能运行,需要一个载体,就是内存.内存的访问不是直接的,而是通过MMU完成.在完成MMU之前,我们先看看一些需要用到的宏定义和函数. include pmap. ...