收录日期:2020/04/07 10:40:25 时间:2016/08/24 12:31:25 标签:MySQL
服务器A 上有一数据库 BMW
公司另有一套数据库 名字也叫 BMW
现在想把BMW 改名为BMW2 然后导出SQL 在服务器上执行?
谁能说下,数据库 用命令如何更名? 
5。1以上
RENAME DATABASE db_name TO new_db_name;
or
RENAME SCHEMA db_name TO new_db_name;
RENAME {DATABASE | SCHEMA} db_name TO new_db_name;
 
This statement was added in MySQL 5.1.7 but was found to be dangerous and was removed in MySQL 5.1.23. 

记住了伐?
引用 1 楼  的回复:
5。1以上
RENAME DATABASE db_name TO new_db_name;
or
RENAME SCHEMA db_name TO new_db_name;
有木有人知道,下午要实施了。
有木有人知道,下午要实施了。
引用 1 楼  的回复:
5。1以上
RENAME DATABASE db_name TO new_db_name;
or
RENAME SCHEMA db_name TO new_db_name;


没有rename database的语法吧?确定吗
引用 5 楼  的回复:
引用 1 楼  的回复:

5。1以上
RENAME DATABASE db_name TO new_db_name;
or
RENAME SCHEMA db_name TO new_db_name;


没有rename database的语法吧?确定吗

如果是5.1以下,导出后再建立新数据库,再导入
rename database db_name to new_db_name
5.1版本以下版本的,最好先导出后再建立数据库,后再导入。
建议是先用 mysqldump 导出,然后修改其它中的 create database 语句为新的数据库名,然后再导入。

如果你的数据库中没有特别的程序比如触发器,存储过程,则可以直接在操作系统上直接把数据所对应的文件目录改名为新的名字。
lz 如何改了?分享一下吧。
我记得没有改数据库名的语句,然后我直接关服务,改文件夹的名字为新库名,启动,就改好了。当然这可能很危险,不建议楼主实际使用,可以测试玩。
引用 6 楼  的回复:
引用 5 楼  的回复:

引用 1 楼  的回复:

5。1以上
RENAME DATABASE db_name TO new_db_name;
or
RENAME SCHEMA db_name TO new_db_name;


没有rename database的语法吧?确定吗

如果是5.1以下,导出后再建立新数据库,再导入

mysql> select @@version;
+-----------+
| @@version |
+-----------+
| 5.5.23    |
+-----------+
1 row in set (0.00 sec)

mysql> rename database db1 to db2;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use n
r 'database db1 to db2' at line 1
mysql>

rename database,此语法还不被支持。
楼主的问题按引擎分为2种情况
1:MYISAM,只需要把库名字的文件夹名称改了就行。
2:INNODB,如果库里面有触发器,需要先删除触发器,库改名后再添加。需要对库里面每个表改名称,存从过程如下:

CREATE DEFINER=`root`@`localhost` PROCEDURE `Switch_DB`( 
        ORIGIN_DB_NAME varchar(500),
        TARGET_DB_NAME varchar(500) 
  )
BEGIN
  DECLARE done INT DEFAULT 0;  
  DECLARE a varchar(200);
  DECLARE b varchar(200);
  DECLARE cur1 CURSOR FOR SELECT table_name FROM information_schema.TABLES WHERE table_schema=ORIGIN_DB_NAME ;
  DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
  
  OPEN cur1;
  REPEAT
    FETCH cur1 INTO a;
    IF NOT done THEN 
       set b=concat('rename table ',ORIGIN_DB_NAME,'.',a,' to ',TARGET_DB_NAME,'.',a); 
        SET @E=b; 
       PREPARE stmt1 FROM @E; 
          EXECUTE stmt1; 
           DEALLOCATE PREPARE stmt1; 
     END IF;
  UNTIL done END REPEAT;
  CLOSE cur1;
  
END;

关键点在:rename table db1.tb to db2.tb.
其实这好像不是“改名”了,而且“移表”了。
调用语法:call cluster.Switch_DB('ng_new','ng');
我这边是先mysqldump后,对create的数据库名字进行修改,再进行source的,挺安全的。

软件工程师去理发店 新手,请教一下,我的这个程序为什么输入以后回车是IOException 什么是程序实例句柄 【已处理】请管理员帮忙删除个重复的资源! android求教,急 C语言学习者遇到不明白的地方了,求大神指点啊 sql语句写法请教!! 应用SL+WCF模式,要得到计算结果,是在服务那里获取数据库表的数据并在服务那里计算完返回结果,还是在服务那里获取数据库表的数据返回结果然后再在客户端计算? 知道某个局域网的路由帐号密码 怎么进入到路由器里面 很多事情现在不做,以后就永远做不了了 GDI 显示已有的像素数组,用什么方法最高效 求大神解决前台查询输出问题 关于海量数据的模糊搜索问题 想系统学习编程知识 请问如何实现类似360浏览器的新页面的效果 谁能解释下方法前面的[]的作用?这是那个知识点,求指教。。。 Opengl模型实现实时缩放 c#中在一个窗口查询数据要在另外一个窗口显示怎么做 请教一下c语言的类型转换问题 asp.net中ajax更新div的问题 求助VB实现网页自动登录 如何依据最小工作量安排员工工作?急 请教:Cwnd 360篡改浏览器搜索惹骂声:以山寨搜索取代百度谷歌 为什么总是崩溃啊!!!求大神帮忙,感激不尽 这条语句为啥有错误? 为啥博客新发的文章看不到 谁推荐一个开源CMS系统的下载地址,数据库一定要是oracle android wifi问题 求ondraw 函数数组画图问题