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

How to remove a prefix name from every table name in a mysql database(如何从mysql数据库中的每个表名中删除前缀名)
本文介绍了如何从mysql数据库中的每个表名中删除前缀名的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个 joomla mysql 数据库,在我的所有表名上都有一个表名前缀jos_".但我想从我所有的表中删除它.我知道如何重命名每个表,一次一个,但我有 600 个表.是否有一个易于运行的 sql 查询来执行此操作.

I have a joomla mysql database with a table name prefix of "jos_" on all of my table names. But I would like to remove it from all of my tables. I understand how to rename each table, one at a time, but I have 600 tables. Is there an easy to run a sql query to do this.

如果有人有解决方案,能否请您发布我可以使用的确切 sql 查询?

If someone has a solution, could you please post the exact sql query I can use?

推荐答案

您可以使用单个查询生成必要的语句:

You can generate the necessary statements with a single query:

select 'RENAME TABLE ' || table_name ||  ' TO ' || substr(table_name, 5) ||';'
from information_schema.tables

将该查询的输出保存到一个文件中,您就拥有了所需的所有语句.

Save the output of that query to a file and you have all the statements you need.

或者,如果返回 0s 和 1s 而不是语句,这里是使用 concat 的版本:

Or if that returns 0s and 1s rather the statemenets, here's the version using concat instead:

select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 5), ';'))))
from information_schema.tables;

这篇关于如何从mysql数据库中的每个表名中删除前缀名的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Execute complex raw SQL query in EF6(在EF6中执行复杂的原始SQL查询)
Hibernate reactive No Vert.x context active in aws rds(AWS RDS中的休眠反应性非Vert.x上下文处于活动状态)
Bulk insert with mysql2 and NodeJs throws 500(使用mysql2和NodeJS的大容量插入抛出500)
Flask + PyMySQL giving error no attribute #39;settimeout#39;(FlASK+PyMySQL给出错误,没有属性#39;setTimeout#39;)
auto_increment column for a group of rows?(一组行的AUTO_INCREMENT列?)
Sort by ID DESC(按ID代码排序)