手摸手系列之批量修改MySQL数据库所有表中某些字段的类型

news2024/11/18 12:19:56

在迁移老项目的数据库时,使用Navicat Premium的数据传输功能同步了表结构和数据。但是,发现某些字段的数据类型出现了错误,例如,租户ID从Oracle的NUMBER类型变成了MySQL的decimal(10),正确的应该是bigInt(20)。此外,逻辑删除标记DEL_FLAG也出错,应该是int(1),但现在是decimal类型。由于涉及到数百个表,手动更改显然不现实。下面来看看如何实现批量修改这些字段的数据类型。

1. 查询系统表,找出数据库中哪些表的哪些字段是哪种类型。

比如,查询数据库waimao中所有表中TENANT_ID字段是decimal类型的:

SELECT
	* 
FROM
	information_schema.`COLUMNS` 
WHERE
	TABLE_SCHEMA = 'waimao' 
	AND COLUMN_NAME = 'TENANT_ID' 
	AND DATA_TYPE = 'decimal'

在这里插入图片描述

2. 把需要修改的字段使用CONCAT拼接成可以执行的更新语句
SELECT
	TABLE_NAME,
	COLUMN_NAME,
	DATA_TYPE,
	COLUMN_COMMENT,
	CONCAT( 'ALTER TABLE ', TABLE_NAME, ' MODIFY COLUMN ', COLUMN_NAME, ' bigint(', 20, ') COMMENT "租户ID";' )  
FROM
	information_schema.`COLUMNS` 
WHERE
	TABLE_SCHEMA = 'waimao' 
	AND COLUMN_NAME = 'TENANT_ID' 
	AND DATA_TYPE = 'decimal'

在这里插入图片描述

3. 将查询结果CONCAT拼接的语句全部复制到查询窗口运行

在这里插入图片描述

4. 同理,将DEL_FLAGdecimal改为int类型

在这里插入图片描述

5. 还需要将DEL_FLAG的默认值设置为0,同时设置注释

更改默认值并设置注释的SQL语句如下:

ALTER TABLE 表名 MODIFY DEL_FLAG INT DEFAULT 0 COMMENT 'Your comment here';
SELECT
	TABLE_NAME,
	COLUMN_NAME,
	DATA_TYPE,
	COLUMN_COMMENT,
	COLUMN_DEFAULT,
	CONCAT( 'ALTER TABLE ', TABLE_NAME, ' MODIFY ', COLUMN_NAME, ' INT DEFAULT 0 COMMENT "删除标记(0正常 1已删除)";' )  
FROM
	information_schema.`COLUMNS` 
WHERE
	TABLE_SCHEMA = 'waimao' 
	AND COLUMN_NAME = 'DEL_FLAG' 
	AND DATA_TYPE = 'int'
	AND COLUMN_COMMENT = ''

在这里插入图片描述

6. 随便打开一张表查看效果

在这里插入图片描述
可以看到TENANT_IDDEL_FLAG已经成功更新。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1072828.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

windows server 2012安装教程

虚拟机系列文章 VMware Workstation Player 17 免费下载安装教程 VMware Workstation 17 Pro 免费下载安装教程 windows server 2012安装教程 Ubuntu22.04.3安装教程 FTP服务器搭建 windows server 2012安装教程 虚拟机系列文章前言 前言 各位道友,大家好&#xf…

大型语言模型:RoBERTa — 一种鲁棒优化的 BERT 方法

一、介绍 BERT模型的出现导致了NLP的重大进展。BERT的架构源自Transformer,在各种下游任务上实现了最先进的结果:语言建模,下一句预测,问答,NER标记等。 大型语言模型:BERT — 来自变压器的双向编码器表示 …

Java反射(一)--- 类的实例化

文章目录 一、整理框架二、Java反射机制提供的功能三、反射相关的主要API四、相关代码:1.Person类2.反射之前,对于Person类的操作3.反射之后,对于Person类的操作 提示:以下是本篇文章正文内容,下面案例可供参考 一、整…

数据库 explain 关键字解析

目录 1. explain 概述 2. explain 关键字的使用方式 3. explain 的版本迭代 4. explain 只分析SQL语句,不执行SQL语句 5. explain 输出结果中各个字段的含义 6. type 表示检索表数据的方式 7. key_len表示使用的索引的长度 8. rows 表示预估读取到的行数 9…

2023年10月9日历史上的今天大事件早读

1740年10月09日红溪惨案 1874年10月09日万国邮政联盟成立 1912年10月09日第一次巴尔干战争爆发 1913年10月09日武昌起义元勋蒋翊武被害 1924年10月09日近代翻译家林纾(林琴南)逝世 1934年10月09日南斯拉夫国王遇刺身亡 1936年10月09日红军三大主力会师 1941年10月09日第…

瑜伽馆微信小程序怎么制作约课系统

在瑜伽馆微信小程序中,约课系统是一个重要的功能模块,可以帮助用户便捷地预约和取消预约瑜伽课程。下面将介绍如何制作一个约课系统,让瑜伽馆微信小程序更加完善。 一、确定约课系统的功能 在制作约课系统前,需要明确其功能和特点…

基于Python+Selenium的web自动化测试框架详解

简介 随着Web应用程序的广泛应用和不断发展,Web自动化测试已经成为软件质量保证中的一个重要环节。而PythonSelenium作为一组强大的工具和框架,已经成为Web自动化测试领域中的热门技术之一。PythonSelenium可以帮助我们快速、准确地模拟用户行为和操作&…

Airtest自动化测试工具

一开始知道Airtest大概是在年初的时候,当时,看了一下官方的文档,大概是类似Sikuli的一个工具,主要用来做游戏自动化的,通过截图的方式用来解决游戏自动化测试的难题。最近,移动端测试的同事尝试用它的poco库…

彩虹商城全新SUP模板 知识付费模板 卡卡云模板源码

2023彩虹商城全新SUP模板 | 知识付费模板 | 卡卡云模板源码 图片:

如何更好的使用结构化工艺文件编制软件?——青创智通

青创智通结构化工艺文件编制软件包括文件创建、文件编制、文件修改、文件复制、文件引用、标准文件库、工艺路线、工艺资源库管理、审批管理、文件导出、文件清单汇总、接口管理等功能。具有以下优势及亮点。 1.集中工艺数据管理 以PLM系统平台为核心的结构化工艺数据支撑平台…

动画圆圈文字标志效果

效果展示 CSS 知识点 实现圆圈文字animation 属性回顾 实现思路 从效果的实现思路很简单,其实就是两个圆圈就可以实现。外层大圆(灰色)用于圆圈文字的展示,而内圆(藏青色)主要用于存放 Logo 图片。布局采…

万兆光模块的速度到底有多快?

万兆光模块的速度到底有多快?相信这是很多人都想知道的问题。首先,让我们来了解一下万兆光模块的工作原理。万兆光模块是一种高速率的光电转换模块,发送端把电信号转换成光信号,通过光纤传送后,接收端再把光信号转换成…

php+html+js+ajax实现文件上传

phphtmljsajax实现文件上传 目录 一、表单单文件上传 1、上传页面 2、接受文件上传php 二、表单多文件上传 1、上传页面 2、接受文件上传php 三、表单异步xhr文件上传 1、上传页面 2、接受文件上传php 四、表单异步ajax文件上传 1、上传页面 2、接受文件上传ph…

Scala第二十章节

Scala第二十章节 scala总目录 文档资料下载 章节目标 理解Akka并发编程框架简介掌握Akka入门案例掌握Akka定时任务代码实现掌握两个进程间通信的案例掌握简易版spark通信框架案例 1. Akka并发编程框架简介 1.1 Akka概述 Akka是一个用于构建高并发、分布式和可扩展的基于事…

彻底关闭Win10/Win11关闭自动更新

在自己电脑上发现可以关闭win11系统自动更新,以后效果就不知道了 1.在开始菜单搜索框输入“注册表编辑器”并打开,如图所示 2.在注册表上方输入一下路径,如图所示 计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings …

SAP FI BSEG-VBUND 贸易伙伴在过账中使用

主要的配置是在OBA7 主要是通过公司间记账&输入贸易伙伴来控制 第一种情况,两者都不勾选 如果在总账行项目,客户,供应商主记录中维护了贸易伙伴,贸易伙伴会被带入到所有的各自的行项目里面 第二种情况,公司间记账…

全网最细,真实企业性能测试落地实施,一文带你快速打通...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、什么是性能测试…

墨西哥专线适合企业大批量寄送吗?

随着全球经济一体化的发展,企业间的交流与合作日益密切。跨境物流服务作为企业开展国际贸易的重要基础设施,其重要性不言而喻。墨西哥专线作为一种高效、快速的跨境物流解决方案,受到了越来越多企业的关注。那么,墨西哥专线是否适…

软件测试面试必问:为什么要选择软件测试?

经常会遇到一些面试官没事的时候问,为什么选择软件测试? 我都在这个行业,你怎么还问我为什么选择软件测试? 错误回答一:我觉得软件测试收入较高。 我们都知道软件测试收入是很高,但是这也不是你面试回答的点…

MATLAB导入EXCEL数据做曲线拟合

MATLAB导入EXCEL数据做曲线拟合 导入数据 导入的EXCEL格式为如下,有一列模拟数据和对应的实测数据 打开之后改个名,方便后续处理导入之和关掉该页面,可以看到已经生成了一个表格数据 然后新建变量 将该列数据复制到fanyan变量中&#x…