Mysql 更改包含某些字符的表的所有列
在MySQL中,如何更改所有表的所有列名以从列名中删除字符串“\u euro” 我可以找到一种方法来搜索一些名称中包含“_euro”的列的表: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
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代码>(并对找到的每一列重复该操作)。