在MySQL中,如何修改所有表的列名,去掉列名中的字符串"_euro“?
我只能找到一种方法来搜索表,这些表的名称中包含一些列"_euro“:
SELECT DISTINCT TABLE_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME LIKE "%_euro"
AND TABLE_SCHEMA='my_database'例如,对于名为price_total_euro的列,我想将其重命名为price_total
发布于 2020-09-07 00:32:06
使用以下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;检查脚本,并在您的数据库上执行它(在创建备份之后....)
发布于 2020-09-07 00:32:34
发布于 2020-09-07 00:47:39
如果您正在使用python和MySQL连接器,您可以将列标题放到一个列表中,然后通过for循环运行它?
for name in table_names:
if name.endswith("_euro"):
new_name = name.replace("_euro", "")https://stackoverflow.com/questions/63766233
复制相似问题