0

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

我认为我可以通过 information_schema 中的 SELECT 将它们全部列出。但我不确定如何进行替换。

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

4

2 回答 2

2

如果您有特权,您将执行以下操作:

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

但最有可能的是,您不能更改架构。

于 2013-04-05T15:24:21.553 回答
-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 的答案应该是正确的。

于 2013-04-05T15:31:30.680 回答