mysql批量修改字段名(列名)
1.需求
项目需要兼容mysql,oracle,postgresql三种数据库,但是在最开始使用的Mysql主键字段是使用的uid,uid在oracle数据库当中是不识别的在数据库迁移的过程中会报错。
2.检索所有需要修改的字段。
SELECT table_name FROM information_schema.`COLUMNS` WHERE lower( TABLE_SCHEMA )= jtsdb AND lower( COLUMN_NAME )= uid;
3.写SQL脚本替换字段名。
数据库名:jtsdb, 表名:sys_user , 旧字段名:uid , 新字段名:u_id , varchar(64)字段类型要写对
alter table jtsdb.sys_user change uid u_id varchar(64) not null;
这样就可以修改一条了,但是修改多条要怎么办呢。我们就可以使用CONCAT函数来拼接一下sql
4.使用CONCAT函数来拼接一下sql来实现批量修改
SELECT CONCAT( ALTER TABLE , jtsdb., table_name, change uid u_id varchar(64) not null; ) FROM information_schema.`COLUMNS` WHERE lower( TABLE_SCHEMA )= jtsdb AND lower( COLUMN_NAME )= uid;
然后把这些sql语句通过V+C复制出来 修改成功
下一篇:
mysql事件不执行的问题