mysql - 更改包含某些字符的表的所有列
问题描述
在 MySQL 中,如何更改所有表的所有列名以从列名中删除字符串“_euro”?
我只是可以找到一种方法来搜索名称中包含一些包含“_euro”的列的表:
SELECT DISTINCT TABLE_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME LIKE "%_euro"
AND TABLE_SCHEMA='my_database'
例如,对于名为price_total_euro
I 的列,我想将其重命名为price_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;
查看脚本,并在您的数据库上执行它(在进行备份之后......)
推荐阅读
- python - ValueError using dask QuantileTransformer : 未知形状 (1, nan)
- c++ - 使用初始化列表初始化类成员会导致内存泄漏
- ansible - stdout_lines 中的 Ansible 搜索字符串和用户稍后作为变量
- jquery - 在javascript jQuery中搜索日期?
- pandas - 在保持排序的同时将 10000 个 csv 合并到不同的文件夹中
- avro - 有没有办法从 Java/Scala 代码中检索 Avro 库的版本?
- python - Lambda 中的内存使用率极高
- java - 使用 Apache commons CSV 处理 2GB 的 csv 文件时出现堆空间错误
- macos - macOS / Qt:禁用我的应用程序停靠菜单上的“退出”菜单项
- javascript - 我如何使用保存上传到一个javascript变量?