mysql - 替换表名+mysql中的部分字符串

标签 mysql database

我的表名称如xyz_table1xyz_table2...

我想用abc等特定字符串替换xyz

因此表名称将类似于 abc_table1, abc_table2...

如果我想使用RENAME TABLE重命名表名称,那么我必须为所有表编写RENAME TABLE脚本。如果有超过 300 个表,那么手动工作量就太大了,即我必须为所有表编写 RENAME TABLE 脚本。
那么还有其他方法来替换表名中的部分字符串吗?

最佳答案

您可以在信息模式表上运行 concat:

你可以检查它的输出

select concat("alter table " . TABLE_NAME . " to " .replace(TABLE_NAME , "xyz", "abc"). ";") from information_schema.TABLES where TABLE_SCHEMA="database_name" ;

然后就可以运行它了:

mysql --batch --skip-column-names --execute \
'select concat("alter table " . TABLE_NAME . " to " .replace(TABLE_NAME , "xyz", "abc"). ";") 
 from information_schema.TABLES where TABLE_SCHEMA="database_name"' | mysql

关于mysql - 替换表名+mysql中的部分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22140323/

相关文章:

database - 追踪设计 - 屏幕到数据库的可追溯性

php - codeigniter 数据库缓存配置

mysql - 错误 1049 (42000) : Unknown database 'articles' ?

mysql - 使用另一个 mysql 表的值更新 Mysql 表

mysql触发器对列ID等于最后插入的行ID和存储的列求和

python - Python 中的内存问题。词典与数据库(或者你能把两者结合起来吗?)

mysql - sum() 列用于相同 id 的多个查询并显示到连接表

python - 未指定主键时,sqlalchemy 会慢很多

php - GPS 坐标的最佳 MySQL 数据库格式类型是什么?

MySQL 错误 1241 : Operand should contain 1 column(s) on insert statement (no selects)