微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从特定 MySQL 数据库中的每个表名中删除前缀名

如何解决如何从特定 MySQL 数据库中的每个表名中删除前缀名

特定 MysqL 数据库中的所有表,例如 my_db,都以前缀开头,其长度为 17 字符。我想从所有表的名称删除前缀。我该怎么做?

解决方法

我在描述here的语句中添加了where table_schema = 'my_db'以获取重命名my_db数据库中所有表的语句,而不是重命名MySQL服务器实例中所有数据库的所有表:

select concat('RENAME TABLE ',concat(table_name,concat(' TO ',concat(substr(table_name,18),';')))) from information_schema.tables where table_schema = 'my_db';

注意前缀的长度是17,我在18命令中使用了substr

,

改进了 hasanghaforian 的回答... 删除了额外的 concat 函数.. 仍然产生相同的输出

select concat('RENAME TABLE ',table_name,' TO ',substr(table_name,' ; ' ) from information_schema.tables where table_schema = 'my_db';

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。