飞龙博客

妙法莲华经

批量修改mysql数据表的字段名大写转为小写语句

feilong.org 修订于2021-10-17 06:14:14 360 次浏览

批量修改mysql数据表的字段名大写转为小写语句

在oracle数据库的数据表字段名都是大写的。现在此数据库进行迁移到mysql数据库。怎么自动转oracle数据表为mysql数据表呢?

方法是:用Navicat软件的工具-数据传输,
生成的数据表的字段名都是大写的。
而且,凡是 字段类型为decimal的地方,都需要把它改为int或tinyint或smallint

这都还是能容忍的。但是mysql数据表字段名,如果习惯了小写字段名,那怎么把数据表的字段名批量改为小写字母呢?

最简单的方法,当然是用Navicat的设计表,一个字段一个字段的改大写字母为小写字母。但如果字段数量多的话,这个办法肯定是不适用的。

那稍微转弯的方法,是
先把数据表的结构用Navicat转储为sql文件。
然后用notepad++等记事本软件,打开sql文件,批量替换大写为小写。
然后用navicat导出,把数据表导出为txt文件。
然后,导入数据结构,
租后,导入数据。
不过这种方法比较繁琐。
而且,如果表数据大的话,txt文件往往打不开,所以也不适用。

那么,把mysql数据表的字段名改为小写,有没有其它办法呢?

飞龙今天尝试了一下,总结为此文章。修改日志网址:https://feilong.org/mysql-upper-lower-columns-ways-oracle

比如我 mysql数据库,名字叫 dbcai
数据表,名字叫 udasset2

于是,批量执行以下的sql语句就行了。


--批量生成sql语句
--先批量生成此数据表的修改字段名的sql语句
SELECT concat(
 'alter table ', TABLE_NAME, 
 ' change ', COLUMN_NAME, ' ', 
 LOWER( COLUMN_NAME ), ' ', 
 COLUMN_TYPE, ' ', 
' comment ''', COLUMN_COMMENT, ''';'
 ) AS '飞龙批量生成修改mysql数据表字段名为小写的sql语句,然后复制为,租后执行这些sql语句'
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = 'dbcai' AND TABLE_NAME = 'udassetaccountbook';

--再看看生成的单个字段的语句系列如下
alter table persongroup change persongroupid persongroupid int(11)  comment '';
alter table persongroup change persongroup persongroup varchar(80)  comment '';
alter table persongroup change description description varchar(100)  comment '名称';

--最后,执行生成的语句就可以了。

只需修改数据库名和数据表名就行了。
有疑问请联系飞龙本人。20211017总结于广州

更新网址:https://feilong.org/mysql-upper-lower-columns-ways-oracle
最初发布:20211017 04:24:20 feilong.org 于广州

加入收藏夹,查看更方便。

所在分类: mysql 教程