服务器A 上有一数据库 BMW
公司另有一套数据库 名字也叫 BMW
现在想把BMW 改名为BMW2 然后导出SQL 在服务器上执行?
谁能说下,数据库 用命令如何更名?
公司另有一套数据库 名字也叫 BMW
现在想把BMW 改名为BMW2 然后导出SQL 在服务器上执行?
谁能说下,数据库 用命令如何更名?
解决方案 »
- VC 用MySQL API 连接数据库,如何返回查询的总数?
- 请高手看看, 这个mysql语句该怎么写???
- 数据字典information_schema.TABLES里面的TABLE_ROWS不正确
- mysql触发器问题
- 紧急请教!提交订单读入数据库为什么这么慢
- mysql触发器不允许有返回值集,求过大神帮忙修改一下
- 请教: 两种不同的数据表结构设计, 到底哪个更好一点呢? 谢谢!!!
- pt-table-checksum工具主机和从机的端口不一样,怎么解决?
- 我想把mysql数据库迁移到ms sql数据库 如何操作?
- 一个公式计算查询问题,急求啊
- mysql数据库中记录条数超过了bigint的最大长度,自增编号会怎么样
- 用于统计移动端用户信息的数据库设计
RENAME DATABASE db_name TO new_db_name;
or
RENAME 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. 记住了伐?
没有rename database的语法吧?确定吗
5.1版本以下版本的,最好先导出后再建立数据库,后再导入。
+-----------+
| @@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.
其实这好像不是“改名”了,而且“移表”了。