我继承了一个MySQL数据库,该数据库在许多表中包含许多列,这些表的名称中都有空格。我被要求将列名中的所有空格更改为下划线。有没有办法用脚本做到这一点?
我认为我可以使用来自information_schema的SELECT列出所有这些内容....但我不知道如何进行替换。
我的逻辑是,如果列名称包含空格,请将其替换为下划线。但我不知道该怎么做。
答案 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应该是正确的答案。