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复制出来
修改成功
https://blog.csdn.net/weixin_34291004/article/details/89806365参考文章