MySQL ( RENAME database olddbname TO newdbname )  对库名的重命名上会出现一些奇怪的错误。有丢失数据的风险。

所以如何去重命名呢:

1 用mysqldump出原来库数据再导入到新的库。这当然是笨拙的方法

2 使用rename table  olddbname.tablename to newdbname.tablename 的方法来重命名库(更改完表明之后把久的库删掉)。可以安全快速的重命名库。

注意:Mysql 的rename table 对于分区表数据存在与单独表空间且表空间不为默认目录。即把分区放在的别的目录下。这时候rename是不成功的。

下面是  重新rename库的一个存储过程。方便大家使用:

delimiter //

set session sql_log_bin=OFF//

DROP PROCEDURE IF EXISTS renamedb //

use mysql //

CREATE DEFINER=`root`@`localhost` PROCEDURE `renamedb`(SCHEMANAME VARCHAR(128), NEW_SCHEMANAME VARCHAR(128),sure int )

COMMENT '数据库重命名 call renamedb(dbname,new_dbname,0/1) 0表示提醒如果新的库名已经存在不会把表rename过去,1表示强制 '

label:BEGIN

DECLARE Done INT DEFAULT 0;

DECLARE MY_TABLE_NAME VARCHAR(128);

DECLARE OLD_TABLE_NAME VARCHAR(128);

DECLARE NEW_TABLE_NAME VARCHAR(128);

DECLARE rs CURSOR FOR select TABLE_NAME from information_schema.tables where table_schema=SCHEMANAME AND table_schema NOT IN('mysql','performance_schema','information_schema','sys');

DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET Done = 1;/* 异常处理 */

IF NOT EXISTS (select SCHEMA_NAME from information_schema.SCHEMATA where SCHEMA_NAME=SCHEMANAME AND SCHEMA_NAME NOT IN('mysql','performance_schema','information_schema','sys')) THEN

select concat(SCHEMANAME,"库名不存在或为系统库");

leave label;

END IF;

IF EXISTS (select SCHEMA_NAME from information_schema.SCHEMATA where SCHEMA_NAME=NEW_SCHEMANAME ) AND sure<>1 THEN

select concat(NEW_SCHEMANAME,"库名已存在,强制rename请call(xxx,new_xxx,1)");

leave label;

END IF;

set @crtdb=concat("create database IF NOT EXISTS ",NEW_SCHEMANAME);

PREPARE stmtcrtdb FROM @crtdb;

EXECUTE stmtcrtdb;

OPEN rs;

FETCH NEXT FROM rs INTO MY_TABLE_NAME;

REPEAT

IF NOT Done THEN

select concat(SCHEMANAME,".",MY_TABLE_NAME) into OLD_TABLE_NAME;

select concat(NEW_SCHEMANAME,".",MY_TABLE_NAME) into NEW_TABLE_NAME;

set @rename_table=concat("rename table ",OLD_TABLE_NAME," to ",NEW_TABLE_NAME);

select concat(@rename_table,";");

PREPARE stmtrename_table FROM @rename_table;

EXECUTE stmtrename_table;

END IF;

FETCH NEXT FROM rs INTO MY_TABLE_NAME;

UNTIL Done END REPEAT;

CLOSE rs;

set @oldtable=concat('show tables from ',SCHEMANAME);

set @newtable=concat('show tables from ',NEW_SCHEMANAME);

PREPARE stmtoldtable FROM @oldtable;

EXECUTE stmtoldtable;

PREPARE stmtnewtable FROM @newtable;

EXECUTE stmtnewtable;

END //

delimiter ;

MySQL中表名重命名

第一种办法:##修改表名, TO 或AS都可以,也以省略掉 ## ALTER TABLE 表名 RENAME [TO|AS] 新表名 ALTER TABLE user10 RENAME TO user ...

MySQL创建表,更新表,删除表,重命名表

创建表 mysql> create table 表名( -> 列名 数据类型 是否为空 auto_increment, -> 列名 数据类型 是否为空... -> ... -& ...

MySQL 库、表

1.库 1.库的基本操作 1.查看已有的库 show databases; 2.创建库(指定默认字符集) create database 库名 default charset=utf8; 3.查看创建 ...

VS中C&plus;&plus; 项目重命名

应该都有过这样的经历,在Visual studio中创建解决方案,添加几个项目进去,然后开始愉快的敲代码....写代码正欢的时候,却总是感觉那里有些不舒服,一细看,这项目名称取的真心挫,修改个吧.直接 ...

R&colon; data&period;frame 生成、操作数组。重命名、增、删、改

################################################### 问题:生成.操作数据框   18.4.27 怎么生成数据框 data.frame.,,及其相关操 ...

MySQL表名大小写敏感性

Linux版MySQL 库名与表名是严格区分大小写的: 表的别名是严格区分大小写的: 列名与列的别名在所有的情况下均是忽略大小写的: 变量名也是严格区分大小写的: 修改步骤如下: 1. 编辑[/etc ...

mysql 命令重命名表RENAME TABLE 句法

mysql 命令重命名表RENAME TABLE 句法 RENAME TABLE tbl_name TO new_tbl_name[, tbl_name2 TO new_tbl_name2,...]更 ...

文件批量加密重命名--python脚本AND mysql命令行导入数据库

在考试中学生交上来的报告,需要进行一下文件名加密,这样阅卷老师就不知道是谁的报告了 在百度帮助下,完成了加密和解密脚本, 加密 #!/usr/bin/python # -*- coding: utf- ...

InfoPath错误,此文档库已被重命名或删除

在使用InfoPath发布表单,发布到SharePoint服务器报错,如下介绍: 环境:Windows 2012 DateCenter + Sql 2012 + SharePoint 2013 + O ...

随机推荐

Registered Nurse in the US

注册护士移民美国的条件 美国护士RN考试介绍 美国注册护士考试复习 美国各州注册护士考试要求 CGFNS Registered nurse Top Paid Registered Nurses

7&period;FPGA中的同步复位与异步复位

1.异步复位 always @ ( posedge sclk or negedge s_rst_n ) if ( !s_rst_n ) d_out <= 1'b0; else d_out &lt ...

SSH 端口转发

第一部分 概述 当你在咖啡馆享受免费 WiFi 的时候,有没有想到可能有人正在窃取你的密码及隐私信息?当你发现实验室的防火墙阻止了你的网络应用端口,是不是有苦难言?来看看 SSH 的端口转发功能能给我 ...

交换a、b

有两个变量a和b,不使用任何中间变量交换a和b. 方法一: 采用如下方法: a=a+b; b=a-b; a=a-b; 这样做的缺点就是如果a.b都是比较大的数,则a=a+b时就会越界. 而采用: a= ...

OC高级编程——深入block,如何捕获变量,如何存储在堆上

OC高级编程——深入block,如何捕获变量,如何存储在堆上   首先先看几道block相关的题目 这是一篇比较长的  博文 ,前部分是block的测试题目,中间是block的语法.特性,block讲 ...

wordpress教程之函数讲解

wordpress函数收集 is_home() : 是否为主页is_single() : 是否为内容页(Post),   是否是单篇文章  is_page() : 是否为内容页(Page),   是否 ...

BZOJ 2875 随机数生成器

http://www.lydsy.com/JudgeOnline/problem.php?id=2875 题意:给出mod,a,c,g,x0,n,xn=(a*xn-1+c)%mod,求xn%g 求A* ...

mysql学习(八)数据表类型-字符集

数据存储引擎: MyISAM:强化快速读取操作. 也有缺点.一些功能不支持 InnoDB:支持一些MyIASM一些不支持的功能                 缺点:占用空间大 对比          ...

2015年4月27日---C语言:输出特殊图案,请在c环境中运行,看一看,Very Beautiful&excl;

---恢复内容开始--- 题目:输出特殊图案,请在c环境中运行,看一看,Very Beautiful! 1.程序分析:字符共有256个.不同字符,图形不一样. 2.程序源代码: [code=c] #i ...

ASP&period;NET MVC---自定义HtmlHelper方法

HtmlHelper方法是ASP.NET MVC中非常强大的特性,有了这个特性,我们就能更加随心所欲的定制自己的页面. 自定义自己的HtmlHelper方法通常有三种, 像是: 一.Razor语法 采 ...

mysql 重命名库_MySQL 库名重命名相关推荐

  1. mysql 忽略表大小写_mysql表名忽略大小写问题记录

    问题描述: 一开发同事在linux下调一个程序老是报错说找不到表,但是登陆mysql,show tables查看明明是已经创建了这张表的!!如下: mysql> show tables; +-- ...

  2. web mysql 界面表命名规范_MySql数据库表字段命名及设计规范

    1.设计原则 1) 标准化和规范化web 数据的标准化有助于消除数据库中的数据冗余.标准化有好几种形式,但 Third Normal Form(3NF)一般被认为在性能.扩展性和数据完整性方面达到了最 ...

  3. Mysql 引擎 表还是库_mysql 库、表、引擎

    innoDB和myisam的区别 InnoDB支持事物,而MyISAM不支持事物 InnoDB支持行级锁,而MyISAM支持表级锁 InnoDB支持MVCC, 而MyISAM不支持 InnoDB支持外 ...

  4. mysql创建表说明_MYSQL库表的创建以及说明

    1.库的创建以及删除修改 CREATE DATABASE zabbix CHARSET utf8mb4 COLLATE utf8mb4_bin; #查看库的情况 SHOW DATABASES; SHO ...

  5. mysql qps tps 监控_Mysql库TPS,QPS实时监控脚本

    作为一名数据库运维人员,手里都有一些工具脚本,这些都是你提升运维效率,快速排查故障的利器. 在生产上部署MySQL时,都会对同一配置的mysql数据库做QPS和TPS压测,获取QPS和TPS的容量数据 ...

  6. linux glib2/gio + udisks2 库处理移动设备重命名

    1.本文开发环境搭建: 库名 deb系 rpm系 udisks2 apt install libudisks2-dev yum install libudisks2-devel glib2/gio a ...

  7. mysql重新命名表_MySQL重命名表

    在本教程中,您将学习如何使用MySQL RENAME TABLE语句和ALTER TABLE语句重命名表. MySQL RENAME TABLE语句简介 由于业务需求变化,我们需要将当前表重新命名为新 ...

  8. mysql在线搭建从库_Mysql主从库搭建

    基于Docker的Mysql主从复制搭建 首先安装docker 拉取mysql镜像:5.7版本 启动主从数据库容器 docker run -p 3339:3306 --name Maste -e MY ...

  9. mysql数据表案例_mysql中库和表的简单操作案例

    mysql中库和表的简单操作案例 发布时间:2020-12-05 09:54:06 来源:亿速云 阅读:71 作者:小新 这篇文章主要介绍mysql中库和表的简单操作案例,文中介绍的非常详细,具有一定 ...

最新文章

  1. 华中农业大学苏汉东课题组诚聘博士后-
  2. 数据蒋堂 | 大数据技术的4个E
  3. vc6.0垃圾文件清理工具_干货 | 电脑清理宝典
  4. 回归树与基于规则的模型(part2)--简单回归树
  5. 视觉SLAM十四讲学习笔记专栏汇总
  6. Linux下编译redis及配置
  7. oracle递归树查询
  8. 自学android刷机包,Android刷机包解包打包
  9. 调度算法-时间片轮转+例题详解
  10. 联想电脑win11修改默认浏览器的方法
  11. 王欣的哲学逻辑与产品猜想
  12. 强哥说Java--Java接口,java高级软件工程师试卷
  13. .Net 简单使用 Hangfire
  14. beautifulsoup菜鸟教程
  15. python实现高级计算器_高级计算器功能Tkinter GUI和variab
  16. 用matlab对2003年香港SARS数据建模预估新冠病毒在H市的疫情走势
  17. 高尔顿的表哥是谁? ^-^ 理解线性与回归---人工智能工作笔记0017
  18. rono在oracle的作用_Oracle 11g各种服务作用以及哪些需要开启
  19. H.266/VVC相关技术学习笔记21:帧间预测中五种Merge模式的熵编码方式
  20. 用 gcc生成静态库和动态库以及静态库和动态库的使用

热门文章

  1. Opencv实现hwc到chw(归一化、减均值、除方差)重磅封装版
  2. 字符串截取函数 substr
  3. Python的静态成员变量和非静态成员变量
  4. Java中Math函数的使用
  5. C++可视化界面EasyX图形库的安装以及简单使用
  6. linux 查看进程的流量监控,Linux如何监控每个进程所消耗流量
  7. Photoshop2021 出现不可恢复的问题,即将退出
  8. 视频流RTSP转RTMP与RTSP转M3U8实战
  9. MFC中UpdateData(FALSE)与UpdateData(TRUE)的区别
  10. bash通配符(wildcard)和特殊符号