飞龙博客

feilong.org 前端开发教程

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

飞龙更新于 2021-10-17 06:14 加入书签 CTRL+D 有 123 个朋友来过

批量修改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总结于广州

飞龙初发:
2021-10-17 04:24
本文更新网址:
https://feilong.org/mysql-upper-lower-columns-ways-oracle

所在目录: mysql 教程

  • html css js
  • angular react vue
  • flutter python