首页 > 数据库 >mysql批量更新数据库内全部表某个字符串为另外一个字符串

mysql批量更新数据库内全部表某个字符串为另外一个字符串

时间:2024-12-20 16:42:51浏览次数:3  
标签:depart name -- 数据库 update project mysql 字符串 TABLE

示例:把指定数据库minex-pms所有表中的project_depart_name字段 重庆项目部更改为渝北项目部,不存在project_depart_name字段的表排除掉,使用临时表和sql脚本的方式实现

sql脚本:

-- 1. 创建实体表来存储需要更新的表名
CREATE TABLE IF NOT EXISTS tables_to_update (
    table_name VARCHAR(255)
);

-- 2. 插入需要更新的表名(排除视图)
INSERT INTO tables_to_update (table_name)
SELECT c.TABLE_NAME
FROM information_schema.COLUMNS c
JOIN information_schema.TABLES t ON c.TABLE_SCHEMA = t.TABLE_SCHEMA AND c.TABLE_NAME = t.TABLE_NAME
WHERE c.TABLE_SCHEMA = 'minex-pms'
AND c.COLUMN_NAME = 'project_depart_name'
AND t.TABLE_TYPE = 'BASE TABLE'; -- 排除视图,只选择实际的表

-- 3. 删除已存在的存储过程(如果存在)
DROP PROCEDURE IF EXISTS update_project_depart_name;

-- 4. 创建存储过程来遍历实体表并执行更新操作
DELIMITER //

CREATE PROCEDURE update_project_depart_name()
BEGIN
    DECLARE done INT DEFAULT FALSE;
    DECLARE tbl_name VARCHAR(255);
    DECLARE cur CURSOR FOR SELECT table_name FROM tables_to_update;
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;

    OPEN cur;

    read_loop: LOOP
        FETCH cur INTO tbl_name;
        IF done THEN
            LEAVE read_loop;
        END IF;
        SET @sql = CONCAT('UPDATE ', tbl_name, ' SET project_depart_name = ''渝北项目部'' WHERE project_depart_name = ''重庆项目部''');
        PREPARE stmt FROM @sql;
        EXECUTE stmt;
        DEALLOCATE PREPARE stmt;
    END LOOP;

    CLOSE cur;
END //

DELIMITER ;

-- 5. 调用存储过程执行更新操作
CALL update_project_depart_name();

-- 6. 删除实体表(可选,根据需求决定是否保留)
DROP TABLE IF EXISTS tables_to_update;

-- 7. 删除已存在的存储过程(如果存在)
DROP PROCEDURE IF EXISTS update_project_depart_name;

以上脚本可以实现指定字段的需求

 

方式2如果数据量不大的话,可以使用navicat工具 先进行库内查找 再手动单张表进行替换

标签:depart,name,--,数据库,update,project,mysql,字符串,TABLE
From: https://www.cnblogs.com/guanxiaohe/p/18619554

相关文章

  • MySQL 数据插入慢
    问题背景使用MybatiPlus批量插入数据,497条数据居然花费了16264毫秒,完全不可接受!  解决方案 核心mybatis-plus批量插入需要添加rewriteBatchedStatements配置mybatis-plus批量插入的性能受事务的影响  方案一MySQLJDBC驱动在默认情况下会忽视executeBatch......
  • leetcode 8. 字符串转换整数 (atoi)
    8.字符串转换整数(atoi)丑陋的代码classSolution{public:intmyAtoi(strings){inti=0,size=s.size();boolisPositive=true;longres=0;while(s[i]=='')++i;//跳过空格if(s[i]=='-'){......
  • 分享一个把表格类型的数据转换成字符串,以表格样式输出,方便控制台和日志记录时更直观
    调用实例:Console.WriteLine("Hello,World!");List<string[]>tabLog=newList<string[]>();tabLog.Add(newstring[]{"编号","姓名","性别","年龄","备注"});tabLog.Add(newstring[]{"1&......
  • Java项目实战之基于 Spring Boot+MyBatisPlus+MySQL+JSP的毕业设计综合信息管理系统
    1.引言1.1项目背景毕业设计是高等教育中的重要环节,为了提高毕业设计管理的效率和质量,实现信息化管理,特开发本毕业设计综合信息管理系统。该系统涵盖了毕业设计过程中的各个环节,包括管理员信息管理、院系专业管理、学生信息管理、教师信息管理、论文题目审核、选题信息管理、历......
  • 这个Mysql的秘密,老师不会告诉你-章节4:Mysql锁
    一、概述    锁的概念大家并不陌生,计算机科学中,锁是在执行多线程时用于强行限制资源访问的同步机制,即用于在并发控制中保证对互斥要求的满足。那么在Mysql中,数据库锁设计的初衷也是处理并发问题。二、锁分类        根据加锁的范围,MySQL里面的锁大致可以......
  • MySQL 开启配置binlog以及通过binlog恢复数据
    --------------------------------------------------------------------------------------#查看binlog的列表,确定需要恢复的时间点或日志文件mysqlbinlog--list-binlog-files #恢复指定时间范围的数据mysqlbinlog--start-datetime="2023-03-0100:00:00"--stop-datet......
  • 字符串部分语法内容(更新中
    字符串部分语法内容一.字符与ASCII码1.字符Q:字符串的作用A:在日常使用中,我们需要计算机帮我们处理各种各样的文字,比如写文档,写代码,各种文字记录在计算机中,就需要用到字符串或者字符数组将文字内容存储在计算机中。字符串由字符组成,字符是单引号包含的一个字形单位,例如'a','5',......
  • Java项目实战之基于springboot+vue+mysql+jpa+redis的企业网站搭建设计文档设计与实现
    一、引言1.1项目背景随着互联网的飞速发展,企业网站已成为企业展示形象、推广产品和服务、与客户沟通的重要窗口。为了提升企业的竞争力,需要构建一个功能完善、用户体验良好的企业网站。1.2项目目标本项目旨在打造一个专业、高效、易用的企业网站,满足企业在品牌展示、产品推......
  • scrapy中pipelines文件封装用sqlalchemy写入mysql数据库
    #前提必须安装 pymysql  sqlalchemy  scrapy#scrapy的piplines文件中fromsqlalchemyimportcreate_engine,text,insertimportpymysqlfromscrapy.utils.projectimportget_project_settingsclassMySQLPipeline:defopen_spider(self,spider):settings=......
  • ssm基于Kinect和可穿戴的健康管理系统29d6u--(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容项目名称:基于Kinect和可穿戴的健康管理系统一、项目背景随着人口老龄化加剧及生活节奏加快,健康管理成为社会关注的焦点。微软Kinect作为体感交互......