首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更改表中包含某些字符的所有列

问更改表中包含某些字符的所有列
EN

Stack Overflow用户
提问于 2020-09-07 00:10:56
回答 3查看 39关注 0票数 1

在MySQL中,如何修改所有表的列名,去掉列名中的字符串"_euro“?

我只能找到一种方法来搜索表,这些表的名称中包含一些列"_euro“:

代码语言:javascript
复制
SELECT DISTINCT TABLE_NAME 
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME LIKE "%_euro"
    AND TABLE_SCHEMA='my_database'

例如,对于名为price_total_euro的列,我想将其重命名为price_total

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-09-07 00:32:06

使用以下SQL创建脚本:

代码语言:javascript
复制
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"

输出将是多行代码,如下所示:

代码语言:javascript
复制
ALTER TABLE test.t1_euro RENAME COLUMN t1_euro TO t1;

检查脚本,并在您的数据库上执行它(在创建备份之后....)

票数 2
EN

Stack Overflow用户

发布于 2020-09-07 00:32:34

票数 0
EN

Stack Overflow用户

发布于 2020-09-07 00:47:39

如果您正在使用python和MySQL连接器,您可以将列标题放到一个列表中,然后通过for循环运行它?

代码语言:javascript
复制
for name in table_names:
    if name.endswith("_euro"):
        new_name = name.replace("_euro", "")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63766233

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档