重命名整个数据库中的列名(所有模式)

时间:2019-02-07 12:52:35

标签: mysql

我想将当前名为deviceID的列重命名为更具风格的device_id。然后使用sed s/deviceID/device_id在我的代码库中将它放入MySQL中似乎是最好的解决方案。

所以我写了这个助手:

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中。

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

0 个答案:

没有答案