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

时间:2014-03-03 06:43:55

标签: mysql database

我的表格名称为xyz_table1xyz_table2 ...

我想用xyz之类的某些字符串替换abc

因此,表格名称将类似于abc_table1abc_table2 ...

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

2 个答案:

答案 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分钟。就是这样。