11

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

4

5 回答 5

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'

将工作。

于 2012-07-16T10:54:51.010 回答
8

运行此语句:

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

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

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

于 2012-04-08T22:47:31.360 回答
3
RENAME TABLE jmla_whatever to jos_whatever;

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

于 2012-04-08T21:51:57.823 回答
2
  1. 使用 phpmyadmin 导出到 .sql 文件
  2. 使用任何带有“查找和替换”功能的文本编辑器(我更喜欢 vim,在大文件上表现出色)打开文件
  3. 执行“查找和替换”,将您的实际前缀放在查找框中,并在替换框中更新
  4. 使用 phpmyadmin 导入文件。

请记住在 phpmyadmin 导入之前删除旧数据库。这可以在导出期间检查合适的选项来完成。

于 2012-04-08T21:49:10.943 回答
0

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

Akeeba 可以在这里获得

于 2014-02-15T11:15:55.530 回答