【发布时间】:2012-04-08 21:42:06
【问题描述】:
所以基本上我在 MySQL 中有一个 joomla 数据库,其中有一堆前缀为“jmla_”的表。我想通过用“jos_”前缀替换“jmla_”前缀来重命名所有这些表。关于如何使用简单的 SQL 脚本或 SQL 查询来执行此操作的任何想法?
【问题讨论】:
所以基本上我在 MySQL 中有一个 joomla 数据库,其中有一堆前缀为“jmla_”的表。我想通过用“jos_”前缀替换“jmla_”前缀来重命名所有这些表。关于如何使用简单的 SQL 脚本或 SQL 查询来执行此操作的任何想法?
【问题讨论】:
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'
会起作用的。
【讨论】:
运行此语句:
SELECT 'rename table '||table_name||' to '||'jos'||substr(table_name,5)||';'
FROM information_schema.tables
WHERE table_name like 'jmla%'
这将创建一个将重命名所有表的脚本。只需将输出复制并粘贴到您的 SQL 客户端即可。
(您需要将|| 更改为 MySQL 的非标准连接运算符,以防您不是在 ANSI 模式下运行它)
【讨论】:
AND TABLE_SCHEMA = 'your_joomla_db'
RENAME TABLE jmla_whatever to jos_whatever;
您必须编写一个脚本来覆盖所有表格 - 您可以使用 show tables 的输出填充您的脚本。详情请见http://dev.mysql.com/doc/refman/5.0/en/rename-table.html。
【讨论】:
请记住在 phpmyadmin 导入之前删除旧数据库。这可以在导出期间检查合适的选项来完成。
【讨论】:
您是否考虑过为 Joomla 使用 Akeeba 管理工具组件!然后使用数据库前缀编辑器更改表前缀,效果非常好。 Akeeba 管理工具可用于保护您的 Joomla!安装
Akeeba可以获取here
【讨论】: