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

vaqhlq81  于 2023-08-02  发布在  Mysql
关注(0)|答案(6)|浏览(146)

所以基本上我在MySQL中有一个joomla数据库,其中有一堆前缀为'jmla_'的表。我想通过将'jmla_'前缀替换为'jos_'前缀来重命名所有这些表。对于如何使用简单的SQL脚本或SQL查询来实现这一点,有什么想法吗?

vaj7vani

vaj7vani1#

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'

字符串
会成功的

r8xiu3jd

r8xiu3jd2#

运行此语句:

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

字符串
这将创建一个脚本,用于重命名所有表。只需将输出复制并粘贴到您的SQL客户端。
(You需要将||更改为MySQL的非标准连接运算符,以防您不在ANSI模式下运行它)
对于此语句的输出,追加

AND table_schema = 'your_joomla_db'


上面写着

rename table ...(output produced)
...
WHERE/AND table_schema = 'your_joomla_db'


Table schema是mysql的数据库名称的内部标签,请确保包含它。

eqqqjvef

eqqqjvef3#

RENAME TABLE jmla_whatever to jos_whatever;

字符串
您必须编写一个脚本来覆盖所有表-您可以使用show tables的输出填充脚本。详情请参见http://dev.mysql.com/doc/refman/5.0/en/rename-table.html

yhuiod9q

yhuiod9q4#

1.使用phpmyadmin导出到.sql文件
1.使用任何文本编辑器(我更喜欢vim,在大文件上工作出色)与功能“查找和替换”打开文件
1.做“查找和替换”,把你的实际前缀在查找框,并在替换框更新
1.使用phpmyadmin导入文件。
记住在导入之前删除旧的数据库。这可以通过在导出期间检查合适的选项来完成。

ojsjcaue

ojsjcaue5#

你有没有考虑过使用Akeeba管理工具组件的Joomla!然后使用数据库前缀编辑器更改表前缀,效果非常好。Akeeba管理工具可以用来保护您的Joomla!安装
Akeeba可以获得here

2cmtqfgy

2cmtqfgy6#

如果您在不同的 databases 中有多个同名的表,也称为 table_schemas,请确保您连接到要重命名其中的表,或者在重命名上使用where子句以确保您的目标 database.tables 被重命名。

USE target_db_name;
SELECT concat (
  'rename table ', table_name, ' to ',
    'new_prefix_',
    substr(table_name, 11),
  ';')
FROM information_schema.tables
WHERE table_name like 'old_prefix_%'
  and table_schema='target_db_name';

字符串

相关问题