`
zoboy
  • 浏览: 857 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

mysql的存储过程---数据库的复制

 
阅读更多
DELIMITER $$

USE `bjcmdb`$$

DROP PROCEDURE IF EXISTS `pro_database_backup`$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `pro_database_backup`(IN databaseName CHAR(40))
BEGIN 
     ##定义变量 
     DECLARE   tableName VARCHAR(40);
     DECLARE   oldtableName VARCHAR(40);
     DECLARE   newtableName VARCHAR(40);
     DECLARE   cur_stop INT DEFAULT 0;
     ##首先这里对游标进行定义
     DECLARE  cur_tableName CURSOR FOR   SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'bjcmdb' AND TABLE_NAME NOT IN ('c_basisline'); 
     ##这个是个条件处理,针对SQLSTATE '02000'的条件
     DECLARE  CONTINUE HANDLER FOR SQLSTATE '02000'  SET  cur_stop = NULL;
    
     ##创建数据库
     SET @createDatabaseSql :=CONCAT("create database ",databaseName,";"); 
    
     PREPARE STMT FROM @createDatabaseSql;
     EXECUTE STMT; 
    
    
     ## 格式化数据库名称
     SET databaseName=CONCAT(databaseName,".");
     ## 开启游标
     OPEN cur_tableName;
/*游标向下走一步,将查询出来的值付给定义的变量*/
FETCH cur_tableName INTO tableName;
##直到查询结果为空时结束遍历
        WHILE ( cur_stop IS NOT NULL) DO
     ##赋表名
     SET oldtableName=CONCAT('bjcmdb.',tableName);
     SET newtableName=CONCAT(databaseName,tableName);
     ##创建表,包括表结构和索引
             SET @createsql :=CONCAT("CREATE TABLE ",newtableName," LIKE ",oldtableName,";"); 
    
     PREPARE STMT FROM @createsql;
     EXECUTE STMT;  
    
     ##复制数据到指定库的表
     SET @insertsql :=CONCAT("INSERT INTO ",newtableName," SELECT * FROM ",oldtableName,";"); 
     ##SELECT  @insertsql;    
     PREPARE STMT FROM @insertsql;    
     EXECUTE STMT;  

     FETCH cur_tableName INTO tableName;
END WHILE;
    CLOSE cur_tableName;
 
    END$$

DELIMITER ;
分享到:
评论

相关推荐

    MySQL-client-5.6.29-1.linux_glibc2.5.x86_64,MySQL-server-5.6.29-1.linux_glibc

    MySQL是世界上最受欢迎的关系型数据库管理系统之一,主要用于存储和管理结构化数据。本压缩包包含的是MySQL的客户端和服务器端的5.6.29版本,适用于Linux_glibc2.5.x86_64架构。这个版本在当时是MySQL的一个稳定版本...

    mysql-connector-java-8.0.17.jar.zip

    MySQL Connector/J 8.0.17 版本是针对MySQL服务器8.0系列的,这意味着它支持该版本的所有新特性,如InnoDB存储引擎的增强、JSON数据类型的支持、窗口函数以及并行复制等。此外,这个版本也包含了一些性能优化和错误...

    mysql-connector-java-8.0.20.jar

    MySQL是世界上最受欢迎的关系型数据库管理系统之一,而`mysql-connector-java-8.0.20.jar`是MySQL针对Java开发的官方驱动程序,用于在Java应用程序中与MySQL数据库进行通信。这个驱动,也称为JDBC(Java Database ...

    mysql-connector-java-5.1.46下载

    它支持多种操作系统,并提供了丰富的功能集,包括事务处理、复制、存储过程等,适用于各种规模的应用,从小型网站到大型企业级系统。 Java,作为一种多平台的开发语言,具有跨平台性、面向对象和强大的库支持等特点...

    mysql-8.0.20-el7-x86_64.tar.gz mysql-8.0.20安装包下载

    本文将详细介绍MySQL 8.0.20的安装过程,该版本适用于Linux发行版中的EL7(Enterprise Linux 7,如CentOS 7)。提供的压缩包文件名为`mysql-8.0.20-el7-x86_64.tar.gz`,这是一个针对64位系统的tar归档文件,包含了...

    mysql-connector-java-5.1.49.tar.gz

    此外,开发者还可以使用JDBC的CallableStatement来调用存储过程,或者利用MySQL的特定特性,比如分区表,视图,触发器等。 总的来说,`mysql-connector-java-5.1.49.tar.gz`是一个对于Java开发者至关重要的组件,它...

    mysql-5.5.40-winx64-msi

    MySQL是世界上最受欢迎的开源数据库系统之一,特别是在Web应用程序中。MySQL 5.5.40是这个数据库管理系统的一个特定版本,发布于2013年,它...通过了解其特性和安装过程,用户可以更好地管理和利用MySQL数据库系统。

    mysql-connect-java-5.1.41 mysql5版本和8版本的连接包!

    MySQL是世界上最受欢迎的关系型数据库管理系统之一,其稳定性和性能使其在Web开发、企业级应用以及各种数据存储解决方案中广泛使用。对于Java开发者来说,能够连接MySQL数据库是非常关键的技能。本压缩包提供了针对...

    mysql-connector-j-8.0.31

    MySQL Connector/J还支持JDBC的高级特性,如批处理、存储过程、游标、多结果集等。此外,它还支持MySQL的特性,如SSL连接、分区表、复制和负载均衡。 总结来说,"mysql-connector-j-8.0.31"是Java开发者连接MySQL...

    Jmeter连接mysql数据库jar包mysql-connector-java-5.1.48-bin.zip

    总之,JMeter连接MySQL数据库的过程涉及了JDBC Connection Configuration的配置、mysql-connector-java驱动的引入以及JDBC Request的使用。熟练掌握这些知识点,能帮助我们在性能测试中有效地评估和优化数据库性能。...

    mysql-5.5.36-win32数据库安装.zip

    MySQL是世界上最受欢迎的开源关系型数据库管理系统之一,尤其在Web应用程序中被广泛使用。这个“mysql-5.5.36-win32数据库安装.zip”压缩包提供了适用于32位Windows操作系统的MySQL 5.5.36版本的安装文件。MySQL 5.5...

    mysql-community-server-8.4.0-1.el9.x86-64

    2. **社区服务器**:MySQL Community Server是开源的,由MySQL社区维护和开发,提供了完整的数据库服务功能,包括SQL支持、事务处理、复制、安全性和备份等。 3. **x86_64架构**:这个版本是为64位系统设计的,意味...

    mysql-connector-java-5.1.10-bin.jar包下载

    MySQL Connector/J是MySQL数据库与Java应用程序之间的重要桥梁,它是一个实现了Java Database Connectivity (JDBC) API的驱动程序,使得Java开发者能够方便地在MySQL数据库上执行CRUD(创建、读取、更新、删除)操作...

    mysql-5.7.27-1.el7.x86_64.rpm-bundle 文件

    MySQL是世界上最受欢迎的开源关系型数据库管理系统之一,其5.7版本是它的一个重要里程碑,引入了许多性能提升和新特性。`mysql-5.7.27-1.el7.x86_64.rpm-bundle`文件是专为Linux系统(特别是Red Hat Enterprise ...

    mysql-connector-java-8.0.30.tar

    MySQL Connector/J 8.0.30 是MySQL数据库与Java应用程序之间的重要桥梁,它是一个用于连接Java应用程序到MySQL服务器的JDBC驱动程序。这个压缩包`mysql-connector-java-8.0.30.tar`包含了运行Java应用并与MySQL进行...

    mysql-connector-java-5.1.25.jar免费下载

    此外,`mysql-connector-java-5.1.25.jar`还包含了对MySQL特定特性的支持,如存储过程、触发器、视图、用户定义函数(UDF)等。它还支持MySQL的一些高级功能,如分区表、复制、InnoDB事务隔离级别等。 值得注意的是,...

    mysql-8.0.26-winx64.zip

    MySQL是世界上最流行的关系型数据库管理系统之一,尤其在Web应用程序中广泛应用。版本8.0.26是MySQL的一个重要更新,提供了许多性能优化、安全性增强和新功能。在Windows平台上,MySQL通常以安装程序或zip文件的形式...

    Eclipse连接MySQL驱动——mysql-connector-java-bin(解压即用)

    在Eclipse中连接MySQL数据库,需要一个关键的组件——MySQL的Java连接器(JDBC驱动),即mysql-connector-java。本篇将详细介绍如何在Eclipse中使用`mysql-connector-java-bin.jar`来实现与MySQL数据库的连接。 ...

    mysql-8.0.33-winx64.zip(mysql安装包)

    1. **InnoDB存储引擎增强**:InnoDB作为MySQL的默认存储引擎,得到了大量优化,包括更快的行锁定、更好的并发性能以及支持更大的表空间。 2. **JSON支持**:MySQL 8.0增强了对JSON数据类型的处理,提供了丰富的函数...

    基于 mysql-binlog-connector-java 实现增量数据的收集.zip

    MySQL数据库在进行大量数据操作时,实时同步和备份是非常重要的需求。`mysql-binlog-connector-java` 是一个用于读取 MySQL 二进制日志(binlog)的Java库,它可以帮助开发者实现实时的数据复制、数据同步以及增量...

Global site tag (gtag.js) - Google Analytics