MySQL 批量修改表名列名大小写

#MySQL#数据库

接手老库时经常会碰到表名列名大小写混乱的情况。手写 rename 语句太累,不如查 information_schema 让数据库自己生成一批 SQL,复制出来跑就行。

批量表名:大写改小写

SELECT
 concat(
     'rename table  '
     , TABLE_NAME
     , ' to '
     , LOWER(TABLE_NAME)
     ,' ;'
 ) AS 'SQL'
FROM
 information_schema.TABLES t 
WHERE
 TABLE_SCHEMA = 'xxxxxx';

批量列名:大写改小写

SELECT
concat(
    'alter table '
    , TABLE_NAME
    , ' change column '
    , COLUMN_NAME
    , ' '
    , LOWER(COLUMN_NAME)
    , ' '
    , COLUMN_TYPE
    , ' comment \''
    , TRIM(REPLACE(REPLACE(REPLACE(REPLACE(COLUMN_COMMENT,',',':'),'"',''),CHAR(10),''),CHAR(13),''))
     , '\''
     , ' '
     , IF(COLUMN_DEFAULT IS NULL, '', concat(' default \'',TRIM(COLUMN_DEFAULT),'\'')) 
     , ';' 
) AS 'SQL'
FROM
    information_schema.COLUMNS t
WHERE
    TABLE_SCHEMA = 'xxxxxx';

xxxxxx 换成你的库名,执行一遍拿到生成的 SQL,再贴到客户端里跑。