MySQL手册中有介绍。
通常我只是转储数据库并用一个新名称重新导入它。这不是非常大的数据库的一个选项。重命名数据库| SCHEMA} db_name TO new_db_name做坏事,只存在于少数版本中,总的来说是个坏主意。
这需要与InnoDB一起工作,InnoDB存储的东西与MyISAM非常不同。
MySQL手册中有介绍。
通常我只是转储数据库并用一个新名称重新导入它。这不是非常大的数据库的一个选项。重命名数据库| SCHEMA} db_name TO new_db_name做坏事,只存在于少数版本中,总的来说是个坏主意。
这需要与InnoDB一起工作,InnoDB存储的东西与MyISAM非常不同。
当前回答
这是一个快速生成重命名sql脚本的方法,如果你有很多表要移动。
SELECT DISTINCT CONCAT('RENAME TABLE ', t.table_schema,'.', t.table_name, ' TO ',
t.table_schema, "_archive", '.', t.table_name, ';' ) as Rename_SQL
FROM information_schema.tables t
WHERE table_schema='your_db_name' ;
其他回答
在phpmyadmin中,您可以轻松地重命名数据库
select database
goto operations tab
in that rename Database to :
type your new database name and click go
要求删除旧表和重新加载表数据单击确定
数据库被重命名
我最近才发现了一个很好的方法,使用MyISAM和InnoDB,而且非常快:
RENAME TABLE old_db.table TO new_db.table;
我不记得我在哪里读到的,但功劳归于别人,而不是我。
如果你更喜欢GUI工具,并且碰巧安装了MySQL Workbench,你可以使用内置的迁移向导
当您在PHPMyAdmin中重命名数据库时,它会创建一个转储,然后删除并使用新名称重新创建数据库。
我认为这个解决方案更简单,是一些开发人员提出的。phpMyAdmin对此有一个操作。
从phpMyAdmin中选择要选择的数据库。在选项卡中有一个叫做Operations,转到rename部分。这是所有。
正如许多人建议的那样,它使用新名称创建一个新数据库,将旧数据库的所有表转储到新数据库中,并删除旧数据库。
更新2022-09-22:MySQL 8.0+增加了一个更简单的解决方案:
不知道从什么时候开始添加RENAME TO关键字,但肯定更简单。不过在尝试之前,我会先把桌子备份一下,尤其是如果你的桌子很大的话。无论如何,它可以实现如下:
ALTER TABLE `schema_name`.`table_name`
RENAME TO `schema_name`.`new_table_name` ;
为了便于阅读,我把它分成了两行,但也可以写成单行,如下:
ALTER TABLE `schema_name`.`table_name` RENAME TO `schema_name`.`new_table_name` ;