数据库重命名

http://blog.csdn.net/zyz511919766/article/details/49335897

1.若库中所有表为MyISAM引擎,则可改库对应的文件夹的名字

关闭MySQL Server:

/etc/init.d/mysql stop

改目录名:

cd /data/mysql; mv old_db new_db;
 

开启MySQL Server

 /etc/init.d/mysql start
 

2.重命名旧库下边的所有表

create databases new_db;
rename table old_db.table1 to new_db.table1,old_db.table2 to new_db.table2,...;
drop database old_db;
eg:
mysql> create database old_db;
Query OK, 1 row affected (0.00 sec)

mysql> use old_db;
Database changed
mysql> create table a ( a int);
Query OK, 0 rows affected (0.24 sec)

mysql> insert into a select 1;
Query OK, 1 row affected (0.01 sec)
Records: 1  Duplicates: 0  Warnings: 0

mysql> create database new_db;
Query OK, 1 row affected (0.00 sec)

mysql> rename table old_db.a to new_db.a;
Query OK, 0 rows affected (0.18 sec)

mysql> use new_db;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> select * from a;
+------+
| a    |
+------+
|    1 |
+------+
1 row in set (0.18 sec)

mysql> use old_db;
Database changed
mysql> select * from a;
ERROR 1146 (42S02): Table ‘old_db.a‘ doesn‘t exist
mysql> drop database old_db;
Query OK, 0 rows affected (0.01 sec)

3.建新库,使用mysqldump工具导出老库数据并导入新库

mysqldump -uuser -ppass -hhost -Pport --single-transaction old_db >old_db.sql

mysql  -uuser -ppass -hhost -Pport -e "create database new_db"
mysql  -uuser -ppass -hhost -Pport  new_db < old_db.sql
mysql  -uuser -ppass -hhost -Pport -e "drop database old_db"

其中方法2中表比较多的情况下,一个个写这些名称未免太痛苦了,可用shell脚本或者存储过程来完成

#!/bin/bash
mysqlconn=" mysql -uuser -ppass  -hhost -Pport ”
old_db=”old_db ”
new_db=”new_db ”
$mysqlconn -e “CREATE DATABASE $new_db”
params=$($mysqlconn -N -e “SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE table_schema=’$old_db’”)
for name in $params; do
$mysqlconn -e “RENAME TABLE $old_db.$name to $new_db.$name”;
done;
$mysqlconn -e “DROP DATABASE $old_db”
时间: 2024-10-13 10:30:25

数据库重命名的相关文章

mysql数据库重命名

mysql 1.4以前 rename database old_name to new_name; 高于1.4就没这个命令了,那怎么办呢?把原来的库导出来,然后删掉.再新建新名字的库,然后把导出的数据导入进去. 获取删除数据库表sql的命令: select concat('drop table ',table_name,';') from  INFORMATION_SCHEMA.TABLES where table_schema='数据库名' into outfile '/tmp/drop_ac

SQLServer 数据库重命名

//SQLServer(将user重命名为us) alter table user rename us; 原文地址:https://www.cnblogs.com/jili6254/p/8276347.html

oracle重命名数据库

这个要分好几步来作业 以ORACLE10g为例,举例说明更改SID名称的过程.假如数据库的SID叫testdb,现在改成orcl,有以下6个步骤: 1.停止所有的oracle服务 1.1.oracle的相关服务都以oracle为前缀,有以下几个: 2.修改初始化文件,将instance_name参数值设置为新的SID名称: 2.1.如果没有可编辑的PFILE文件,可以使用CREATE PFILE FROM SPFILE命令创建.将初始化文件参数的 以下内容: db_name="testdb&qu

数据库常用操作记录:新加列、重命名列、修改列长度和类型、删除列、重命名表名等

1.在数据库已有的表中 增加一个新列 语句:alter table 表名 add 列名 类型 例:ALTER myuser ADD userdesc VARCHAR(50); 2.为数据库中已有的表中的列 重命名 语句:alter table 表名 rename column 原列名 to 新列名; 例:alter table myuser rename column attrname to pk_Group; 3.为数据库中已有的表中的列 修改长度和类型 语句:alter table 表名 m

利用存储过程来重命名SQL Server数据库

最近遇到一个需要在多用户模式下重新命名数据库的Case, 因为数据库可能被其他用户使用,所以直接修改可能会失败.对于此种情况,我们可以等所有用户结束使用数据库时修改,或者是将数据库切换到单用户模式下进行操作. 有时候,我们在开发过程中需要直接把生产环境的数据库拿到开发环境来测试开发.我们可以直接重命名生产环境上的数据库.这样以来,即使你有些SQL没有保存,也可以直接从原来的数据库中抓取. 有两个重要的细节我们必须注意 当重名名数据库时, filegroup的名字和数据文件名(.mdf,.ldf)

[SQL Server]重命名数据库【转】

原文链接:http://www.cnblogs.com/Ryan_j/archive/2011/04/03/2004428.html 重命名数据库很简单,选择数据库--右键--重命名数据库 或者 sp_renamedb 'oldDB' ,'newDB' 但是你再新建的相同名字的数据库就会报错,提示数据库已经存在 比如test数据库重命名为test1后,再新建名为test的数据库就会收到test数据库已存在的报错. 去SQL Server的安装目录DATA下,你会发现test.mdf和test_l

sqlserver数据库不能重命名报错5030

在学习asp.net的时候使用mssql'经常会出现这种错误,数据库不能重名名5030的错误,其实很简单原因就是有应用程序正在占用这个连接,使用这样一行命令就可以查询出正在占用的连接 use master select spid from master.dbo.sysprocesses where dbid=db_id('ODatabaseName') 执行的结果是个多个数字 比如23 ,90, use  master kill 23 90 就可以了,在有外来用户访问数据库的情况下执行 EXEC

对数据库中的表或字段重命名

mysql> alter table test rename as T; Query OK, 0 rows affected (0.21 sec) //对字段重命名 alter table test change t_name t_name_new varchar(20);

如何对数据库中的表以及表中的字段进行重命名

貌似没有直接的SQL语句可以做到这一点,除非删除再加... SQL SERVER 中提供了存储过程:SP_RENAME 对表进行重命名: EXEC sp_rename '旧表名', '新表名'; 对表中列进行重命名: EXEC sp_rename '表名.旧列名', '新列名', 'COLUMN'; 更多详见:https://msdn.microsoft.com/zh-cn/library/ms188351.aspx