我的表名称如xyz_table1
、xyz_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/