Mysql 更改包含某些字符的表的所有列

Mysql 更改包含某些字符的表的所有列,mysql,sql,rename,Mysql,Sql,Rename,在MySQL中,如何更改所有表的所有列名以从列名中删除字符串“\u euro” 我可以找到一种方法来搜索一些名称中包含“_euro”的列的表: SELECT DISTINCT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME LIKE "%_euro" AND TABLE_SCHEMA='my_database' 例如,对于名为price\u total\u euro的列,我想将其重命名为pr

在MySQL中,如何更改所有表的所有列名以从列名中删除字符串“\u euro”

我可以找到一种方法来搜索一些名称中包含“_euro”的列的表:

SELECT DISTINCT TABLE_NAME 
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME LIKE "%_euro"
    AND TABLE_SCHEMA='my_database'

例如,对于名为
price\u total\u euro
的列,我想将其重命名为
price\u total
使用以下SQL创建脚本:

SELECT CONCAT("ALTER TABLE ",TABLE_SCHEMA,".",TABLE_NAME," RENAME COLUMN ",COLUMN_NAME," TO ",REPLACE(COLUMN_NAME,"_euro",""),"; ")
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME LIKE "%_euro"
输出将为,多行,如下所示:

ALTER TABLE test.t1_euro RENAME COLUMN t1_euro TO t1;

查看脚本,并在数据库上执行它(备份后…)

将您的选择放入存储过程中,在all上创建一个游标和循环,然后执行alter操作


您可以在这里找到一个过程示例:

如果您将python与MySQL连接器结合使用,您可以将列标题放入列表中,然后通过for循环运行它

for name in table_names:
    if name.endswith("_euro"):
        new_name = name.replace("_euro", "")

您可以创建一个包含以下内容的脚本:
altertable将price\u total\u euro列重命名为price\u total(并对找到的每一列重复该操作)。