如何更改数据库的名称?
我尝试使用重命名数据库命令,但文件中提到它是危险的。那么我该怎么做才能更改我的数据库名称呢?
比如说,如果我想把我的数据库重命名为这个。
database1 -> database2?
如何更改数据库的名称?
我尝试使用重命名数据库命令,但文件中提到它是危险的。那么我该怎么做才能更改我的数据库名称呢?
比如说,如果我想把我的数据库重命名为这个。
database1 -> database2?
请按照以下步骤进行:
shell> mysqldump -hlocalhost -uroot -p database1 > dump.sql
mysql> CREATE DATABASE database2;
shell> mysql -hlocalhost -uroot -p database2 < dump.sql
如果你想删除database1,否则就让它保留。
mysql> DROP DATABASE database1;
注意:shell>代表命令提示符,mysql>代表mysql提示符。我认为这是不可能的。
你可以使用 mysqldump
命令来导出数据,然后创建一个新的名称为你想要的数据库并将数据导入到新的数据库中。
遗憾的是,MySQL没有明确支持该操作(除了倒出和重新加载整个数据库)。
从http://dev.mysql.com/doc/refman/5.1/en/rename-database.html:
13.1.32. RENAME DATABASE 语法
RENAME {DATABASE | SCHEMA} db_name TO new_db_name;
此语句在 MySQL 5.1.7 中添加,但被发现存在潜在危险,并在 MySQL 5.1.23 中被移除... 使用此语句可能导致丢失数据库内容,这就是为什么它被移除的原因。不要在早期版本中使用 RENAME DATABASE 语句。
-- ensure the char set and collate match the existing database.
SHOW VARIABLES LIKE 'character_set_database';
SHOW VARIABLES LIKE 'collation_database';
CREATE DATABASE `database2` DEFAULT CHARACTER SET = `utf8` DEFAULT COLLATE = `utf8_general_ci`;
RENAME TABLE `database1`.`table1` TO `database2`.`table1`;
RENAME TABLE `database1`.`table2` TO `database2`.`table2`;
RENAME TABLE `database1`.`table3` TO `database2`.`table3`;
CALL renameDatabase('old_name', 'new_name');
经过MariaDB测试,理想情况下适用于所有使用InnoDB事务引擎的关系型数据库管理系统。
另一种重命名数据库或对数据库进行图像捕捉的方法是使用数据库选项卡中的逆向工程选项。它将为数据库创建一个ER图表。在那里对模式进行重命名。
之后,转到文件菜单,选择导出和正向工程数据库。
然后您可以导入数据库。
Sequel Ace 数据库客户端具有重命名数据库功能。选择要编辑的数据库,单击菜单中的 Database
,然后从下拉菜单中单击 Rename Database
。重新命名数据库并单击 rename
。完成!
alter database Testing modify name=LearningSQL;
Old Database Name = Testing,
New Database Name = LearningSQL