我的表格名称为xyz_table1
,xyz_table2
...
我想用xyz
之类的某些字符串替换abc
。
因此,表格名称将类似于abc_table1
,abc_table2
...
如果我想用RENAME TABLE
重命名表名,那么我将不得不为所有表编写RENAME TABLE
脚本。如果有超过300个表,则表示手动工作太多,即我必须为所有表编写RENAME TABLE
脚本。
那么还有其他方法来替换表名中的部分字符串吗?
答案 0 :(得分:0)
您可以在信息架构表上运行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
答案 1 :(得分:0)
你可以按照以下方式进行, `
1) show tables.
2) copy all the table names.
3) paste it in an excel sheet.
4) apply formula for creating a rename query and drag it to apply for remaining 300 tables.
5) copy the queries and run.`
需要2-3分钟。就是这样。