首页 > 解决方案 > 重命名整个数据库中的列名(所有模式)

问题描述

我想将当前命名的列重命名deviceID为更有的样式device_id。然后在我的代码库中使用 sed 将其放入 MySQLs/deviceID/device_id似乎是最好的解决方案。

所以我写了这个助手:

SELECT 
    CONCAT('ALTER TABLE `', TABLE_SCHEMA, '`.`', TABLE_NAME,
            '` CHANGE COLUMN `', COLUMN_NAME, '` `device_id` ', 
            COLUMN_TYPE, IF(IS_NULLABLE = 'YES', ' NULL', ' NOT NULL'),
            IF (COLUMN_DEFAULT IS NULL, '', CONCAT('DEFAULT ', COLUMN_DEFAULT)), ';')
FROM
    INFORMATION_SCHEMA.COLUMNS
WHERE
    COLUMN_NAME LIKE 'deviceID';

然后我可以将输出通过管道传输到mysql.

有没有更简单、更安全的解决方案?

标签: mysql

解决方案


推荐阅读