重命名表中的所有列,删除空格

时间:2015-06-30 07:30:36

标签: mysql

我有一个表格,我从一个非常大的CSV导入,有超过100列。我刚刚注意到他们已经在列名中导入了空格。

有没有办法重命名所有列并删除空格?

2 个答案:

答案 0 :(得分:6)

以下查询将从数据库your_table中表your_database中包含任何空格的列名中删除所有空格。您可以使用所需的值替换。

SELECT
    CONCAT(
           'ALTER TABLE ', C.TABLE_NAME, ' CHANGE `', 
           C.COLUMN_NAME, '` ', REPLACE(C.COLUMN_NAME, ' ', ''), ' ',
           C.DATA_TYPE, ';'
          )
FROM
    INFORMATION_SCHEMA.COLUMNS C
WHERE
    TABLE_SCHEMA = 'your_database' AND TABLE_NAME = 'your_table'
    AND C.COLUMN_NAME LIKE '% %';

密切关注列名称周围的反引号。这将输出一组ALTER TABLE语句,如下所示:

ALTER TABLE your_table CHANGE `Old Column Name` OldColumnName VARCHAR;

答案 1 :(得分:-1)

尝试此系统程序:

EXEC sp_RENAME 'TableName.OldName' , 'NewName', 'COLUMN'