用Underscore MySQL替换列名中的空格

时间:2013-04-05 14:43:16

标签: mysql

我继承了一个MySQL数据库,该数据库在许多表中包含许多列,这些表的名称中都有空格。我被要求将列名中的所有空格更改为下划线。有没有办法用脚本做到这一点?

我认为我可以使用来自information_schema的SELECT列出所有这些内容....但我不知道如何进行替换。

我的逻辑是,如果列名称包含空格,请将其替换为下划线。但我不知道该怎么做。

2 个答案:

答案 0 :(得分:2)

如果您拥有这些权限,则可以执行以下操作:

UPDATE COLUMNS SET COLUMN_NAME = REPLACE(COLUMN_NAME, ' ', '_')

但最有可能的是,你无法改变架构。

答案 1 :(得分:-1)

update information_schema.TABLES a
        join
    information_schema.COLUMNS b ON a.TABLE_Schema = b.TABLE_SCHEMA 
set 
    b.COLUMN_NAME = REPLACE(b.COLUMN_NAME, ' ', '_')
where
    a.TABLE_SCHEMA = 'YOURDBNAME'; 
如果您拥有information_schema数据库的权限,那么Raheel Hasan应该是正确的答案。