mysql中修改表名前缀的语句为:alert table 旧表名 rename to 新表名;
mysql没有直接批量修改表名的方法,但是我们可以通过批量生成修改语句来达到批量修改表名的效果。
代码:
SELECT
CONCAT( 'ALTER TABLE ', table_name, ' RENAME TO pre_', SUBSTRING( table_name, 1 ), ';' ) sql
FROM
information_schema.TABLES
WHERE
table_schema = 'db_name'
AND table_name LIKE '%';
注:pre_ :为需要设置的前缀;WHERE条件中,table_schema : 需要替换的库名; table_name :需要替换的表名(%,全匹配)
修改表名后,表的相关索引不会消失
测试:原数据表users;新数据表pre_users。
查看相关索引
通过explain 分析实际作用的索引(key)
数据表明:数据表名的修改,索引会被复制到新表,关系不变。
但新表重命名后,表的创建时间会以重命名时的时间为准。