在MySQL中,如何批量重命名数据库中的表?

时间:2012-04-08 21:42:06

标签: mysql joomla1.5

所以基本上我在MySQL中有一个joomla数据库,它有一堆表有前缀'jmla_'的表。我想通过用'jos_'前缀替换'jmla_'前缀来重命名所有这些表。有关如何使用简单的SQL脚本或SQL查询执行此操作的任何想法?

5 个答案:

答案 0 :(得分:10)

SELECT  concat ('rename table ',table_name,' to ',table_name,'_old;')
FROM information_schema.tables
WHERE table_name like 'webform%'
  and table_schema='weiss_db_new'

会奏效。

答案 1 :(得分:8)

运行此声明:

SELECT 'rename table '||table_name||' to '||'jos'||substr(table_name,5)||';'
FROM information_schema.tables
WHERE table_name like 'jmla%'

这将创建一个重命名所有表的脚本。只需复制&将输出粘贴到SQL客户端。

(如果你没有在ANSI模式下运行它,你需要将||更改为MySQL的非标准连接运算符)

答案 2 :(得分:3)

RENAME TABLE jmla_whatever to jos_whatever;

您必须编写一个脚本来覆盖所有表格 - 您可以使用show tables的输出填充脚本。有关详细信息,请参阅http://dev.mysql.com/doc/refman/5.0/en/rename-table.html

答案 3 :(得分:2)

  1. 使用phpmyadmin导出到.sql文件
  2. 使用任何文本编辑器(我更喜欢vim,在大文件上工作得很好),使用“查找和替换”功能打开文件
  3. 执行“查找并替换”,将您的实际前缀放入查找框,并在替换框中更新
  4. 使用phpmyadmin导入文件。
  5. 请记住在通过phpmyadmin导入之前删除旧数据库。这可以完成,在导出期间检查合适的选项。

答案 4 :(得分:0)

您是否考虑过为Joomla使用Akeeba管理工具组件!然后使用数据库前缀编辑器更改表前缀,非常有效。 Akeeba管理工具可用于保护您的Joomla!安装

可以获得Akeeba here