- 浏览: 2242542 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (423)
- FileNet相关 (3)
- 应用服务器相关 (22)
- Java综合 (77)
- 持久层 (24)
- struts (11)
- webservice (8)
- 虚拟机 (2)
- 光盘刻录 (0)
- AD及AD集群 (1)
- JS (33)
- F5 (0)
- loadrunner8.1 (0)
- Java 反编译工具 (2)
- DataBase (62)
- ant (1)
- 操作系统 (29)
- 我的任务 (3)
- 平台架构 (16)
- 业务规则引擎 (2)
- 模板 (1)
- EJB (5)
- spring (24)
- CMMI (1)
- 项目管理 (20)
- LDAP (13)
- JMS (10)
- JSP (19)
- JBPM (2)
- web MVC框架设计思想 (2)
- 第三方支付平台 (2)
- BUG管理工具 (1)
- 垃圾站 (2)
- php (1)
- swing (1)
- 书籍 (1)
- QQ qq (2)
- 移动互联网 (26)
- 爱听的歌曲 (0)
- hadoop (4)
- 数据库 (9)
- 设计模式 (1)
- 面试经验只谈 (1)
- 大数据 (9)
- sp (1)
- 缓存数据库 (8)
- storm (2)
- taobao (2)
- 分布式,高并发,大型互联网,负载均衡 (6)
- Apache Ignite (0)
- Docker & K8S (0)
最新评论
-
wangyudong:
新版本 Wisdom RESTClienthttps://gi ...
spring rest mvc使用RestTemplate调用 -
wangyudong:
很多API doc生成工具生成API文档需要引入第三方依赖,重 ...
spring rest mvc使用RestTemplate调用 -
zhaoshijie:
cfying 写道大侠,还是加载了两次,怎么解决啊?求。QQ: ...
spring容器加载完毕做一件事情(利用ContextRefreshedEvent事件) -
xinglianxlxl:
对我有用,非常感谢
spring容器加载完毕做一件事情(利用ContextRefreshedEvent事件) -
k_caesar:
多谢,学习了
利用maven的resources、filter和profile实现不同环境使用不同配置文件
关键字:循环创建多张表 和 多个数据库sql语句(数据库水平分库分表时方便)
提示:创建库或表时可以用存储过程 删除库或表时也可以用存储过程 方便又省时
---------------------------------创建所有数据库-------------------------------------------
调用:call create_databases('znke_z_log_', 0, 128);
参数说明:
1、要创建的数据库前缀
2、目标数据库后缀最小数
3、目标数据库后缀最大数(数据库总数量)
CREATE `create_databases`(IN db_pre VARCHAR(20),IN min_num INT,IN max_num INT)
BEGIN
DECLARE i INT;
DECLARE db_name VARCHAR(20);
DECLARE sql_text VARCHAR(2000);
SET i=min_num;
SET db_name='';
SET sql_text='';
WHILE i<max_num DO
SET db_name=CONCAT(db_pre,i);
SET sql_text=CONCAT('CREATE DATABASE ', db_name, '' );
SELECT sql_text;
SET @sql_text=sql_text;
PREPARE stmt FROM @sql_text;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET i=i+1;
END WHILE;
END;
---------------------------------删除所有数据库-------------------------------------------
调用:call delete_databases('znke_z_log_', 0, 128);
参数说明:
1、要删除的数据库前缀
2、目标数据库后缀最小数
3、目标数据库后缀最大数(数据库总数量)
CREATE `delete_databases`(IN db_pre VARCHAR(20),IN min_num INT,IN max_num INT)
BEGIN
DECLARE i INT;
DECLARE db_name VARCHAR(20);
DECLARE sql_text VARCHAR(2000);
SET i=min_num;
SET db_name='';
SET sql_text='';
WHILE i<max_num DO
SET db_name=CONCAT(db_pre,i);
SET sql_text=CONCAT('drop DATABASE ', db_name, '' );
SELECT sql_text;
SET @sql_text=sql_text;
PREPARE stmt FROM @sql_text;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET i=i+1;
END WHILE;
END;
---------------------------------创建所有数据库中的表-------------------------------------------
调用:CALL create_tables_of_databases('znke_z_log_', 'log' ,'znke_z_log.log' ,0 , 128);
参数说明:
1、目标数据库的前缀
2、要创建到目标数据库中的表名称
3、源数据库名称.源表名称(原理从已创建的库中复制,所以先要在源数据库中创建好设计好的表结构)
4、目标数据库后缀最小数
5、目标数据库后缀最大数(数据库总数量)
CREATE PROCEDURE `create_tables_of_databases`(IN db_pre VARCHAR(20),IN table_name VARCHAR(20),IN source_db_and_tableName VARCHAR(30),IN min_num INT,IN max_num INT)
BEGIN
DECLARE i INT;
DECLARE db_name VARCHAR(20);
DECLARE sql_text VARCHAR(2000);
SET i=min_num;
SET db_name='';
SET sql_text='';
WHILE i<max_num DO
SET db_name=CONCAT(db_pre,i);
SET sql_text=CONCAT('create table ', db_name , '.' ,table_name ,' like ' ,source_db_and_tableName);
SELECT sql_text;
SET @sql_text=sql_text;
PREPARE stmt FROM @sql_text;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET i=i+1;
END WHILE;
END;
---------------------------------删除所有数据库中的表-------------------------------------------
调用:CALL delete_tables_of_databases('znke_z_log_', 'log' ,0 , 128);
参数说明:
1、目标数据库的前缀
2、要创建到目标数据库中的表名称
3、目标数据库后缀最小数
4、目标数据库后缀最大数(数据库总数量)
CREATE PROCEDURE `delete_tables_of_databases`(IN db_pre VARCHAR(20),IN table_name VARCHAR(20),IN min_num INT,IN max_num INT)
BEGIN
DECLARE i INT;
DECLARE db_name VARCHAR(20);
DECLARE sql_text VARCHAR(2000);
SET i=min_num;
SET db_name='';
SET sql_text='';
WHILE i<max_num DO
SET db_name=CONCAT(db_pre,i);
SET sql_text=CONCAT('drop table ', db_name , '.' ,table_name);
SELECT sql_text;
SET @sql_text=sql_text;
PREPARE stmt FROM @sql_text;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET i=i+1;
END WHILE;
END;
---------------------------------创建数据库中所有分表(单库多表 分片模式)-------------------------------------------
调用:call create_tables('alibaba_db', 'user_', 0 ,128);
参数说明:
1、目标数据库(在该数据库中建立很多分表)
2、要创建到目标数据库中的表前缀
3、目标数据库后缀最小数
4、目标数据库后缀最大数(数据库总数量)
CREATE `create_tables`(IN db_name VARCHAR(20),IN table_pre VARCHAR(20), IN min_num INT,IN max_num INT)
BEGIN
DECLARE i INT;
DECLARE table_name VARCHAR(20);
DECLARE sql_text VARCHAR(2000);
SET i=min_num;
SET table_name='';
SET sql_text='';
WHILE i<max_num DO
SET table_name=CONCAT(table_pre,i);
SET sql_text=CONCAT('CREATE TABLE ',db_name ,'.',table_name, '(
id VARCHAR(32) NOT NULL,
user_id VARCHAR(32),
direction VARCHAR(8) ,
operate_score INT(11),
operator VARCHAR(32) ,
operate_time DATETIME,
score_status INT(4) ,
score_rule_id VARCHAR(32) DEFAULT NULL ,
member_level INT(4) DEFAULT NULL ,
score_type INT(4) ,
product_id VARCHAR(32) DEFAULT NULL ,
remark VARCHAR(256) DEFAULT NULL ,
operate_source INT(4) DEFAULT NULL ,
gmt_modify DATETIME NOT NULL,
gmt_create DATETIME NOT NULL,
PRIMARY KEY (id)
) ENGINE=INNODB DEFAULT CHARSET=utf8' );
SELECT sql_text;
SET @sql_text=sql_text;
PREPARE stmt FROM @sql_text;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET i=i+1;
END WHILE;
END;
---------------------------------删除数据库中所有分表(单库多表 分片模式)-------------------------------------------
调用:call delete_tables('alibaba_db', 'user_', 0 ,128);
参数说明:
1、目标数据库(在该数据库中建立很多分表)
2、要创建到目标数据库中的表前缀
3、目标数据库后缀最小数
4、目标数据库后缀最大数(数据库总数量)
CREATE `delete_tables`(IN db_name VARCHAR(20),IN table_pre VARCHAR(20), IN min_num INT,IN max_num INT)
BEGIN
DECLARE i INT;
DECLARE table_name VARCHAR(20);
DECLARE sql_text VARCHAR(2000);
SET i=min_num;
SET table_name='';
SET sql_text='';
WHILE i<max_num DO
SET table_name=CONCAT(table_pre,i);
SET sql_text=CONCAT('drop table ', db_name , '.' ,table_name);
SELECT sql_text;
SET @sql_text=sql_text;
PREPARE stmt FROM @sql_text;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET i=i+1;
END WHILE;
END;
----------------------靓丽的分割线 结束---------------------------------------
============靓丽的分割线 以下为老版本 不可以动态传参数 仅供参考==============
-----------------------------MySQL动态创建多张表-----------------------------------------------
说明:1、修改SET table_pre='score_stream_' 为你需要的数据库名称前缀
2、修改SET i=1 为你需要开始的数量后缀(最小后缀)
3、修改WHILE i<16 为你最大的数量后缀(最大后缀)
call create_tables();
CREATE PROCEDURE `create_tables`()
BEGIN
DECLARE i INT;
DECLARE table_name VARCHAR(20);
DECLARE table_pre VARCHAR(20);
DECLARE sql_text VARCHAR(2000);
SET i=1;
SET table_name='';
SET table_pre='score_stream_';
SET sql_text='';
WHILE i<16 DO
IF i<10 THEN SET table_name=CONCAT(table_pre,'0',i);
ELSE SET table_name=CONCAT(table_pre,i);
END IF;
SET sql_text=CONCAT('CREATE TABLE ', table_name, '(
id VARCHAR(32) NOT NULL,
user_id VARCHAR(32),
direction VARCHAR(8) ,
operate_score INT(11),
operator VARCHAR(32) ,
operate_time DATETIME,
score_status INT(4) ,
score_rule_id VARCHAR(32) DEFAULT NULL ,
member_level INT(4) DEFAULT NULL ,
score_type INT(4) ,
product_id VARCHAR(32) DEFAULT NULL ,
remark VARCHAR(256) DEFAULT NULL ,
operate_source INT(4) DEFAULT NULL ,
gmt_modify DATETIME NOT NULL,
gmt_create DATETIME NOT NULL,
PRIMARY KEY (id)
) ENGINE=INNODB DEFAULT CHARSET=utf8' );
SELECT sql_text;
SET @sql_text=sql_text;
PREPARE stmt FROM @sql_text;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET i=i+1;
END WHILE;
END
-----------------------------MySQL动态创建多个数据库-----------------------------------------------
说明:1、修改SET table_pre='score_stream_' 为你需要的数据库名称前缀
2、修改SET i=1 为你需要开始的数量后缀(最小后缀)
3、修改WHILE i<16 为你最大的数量后缀(最大后缀)
call create_databases();
CREATE PROCEDURE `create_databases`()
BEGIN
DECLARE i INT;
DECLARE table_name VARCHAR(20);
DECLARE table_pre VARCHAR(20);
DECLARE sql_text VARCHAR(2000);
SET i=1;
SET table_name='';
SET table_pre='score_stream_';
SET sql_text='';
WHILE i<16 DO
IF i<10 THEN SET table_name=CONCAT(table_pre,'0',i);
ELSE SET table_name=CONCAT(table_pre,i);
END IF;
SET sql_text=CONCAT('CREATE DATABASE ', table_name, '' );
SELECT sql_text;
SET @sql_text=sql_text;
PREPARE stmt FROM @sql_text;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET i=i+1;
END WHILE;
END
-----------------------------MySQL动态删除多个数据库-----------------------------------------------
说明:具体参数可以根据情况调整
CREATE PROCEDURE `create_databases`()
BEGIN
DECLARE i INT;
DECLARE table_name VARCHAR(20);
DECLARE table_pre VARCHAR(20);
DECLARE sql_text VARCHAR(2000);
SET i=1;
SET table_name='';
SET table_pre='score_stream_';
SET sql_text='';
WHILE i<16 DO
IF i<10 THEN SET table_name=CONCAT(table_pre,'0',i);
ELSE SET table_name=CONCAT(table_pre,i);
END IF;
SET sql_text=CONCAT('CREATE DATABASE ', table_name, '' );
SELECT sql_text;
SET @sql_text=sql_text;
PREPARE stmt FROM @sql_text;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET i=i+1;
END WHILE;
END;
-----------------------------MySQL动态删除多个数据表-----------------------------------------------
CREATE PROCEDURE `delete_tables`()
BEGIN
DECLARE i INT;
DECLARE table_name VARCHAR(20);
DECLARE table_pre VARCHAR(20);
DECLARE sql_text VARCHAR(2000);
SET i=0;
SET table_name='';
SET table_pre='score_stream_';
SET sql_text='';
WHILE i<1024 DO
SET table_name=CONCAT(table_pre,i);
SET sql_text=CONCAT('drop TABLE ', table_name, '' );
SELECT sql_text;
SET @sql_text=sql_text;
PREPARE stmt FROM @sql_text;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET i=i+1;
END WHILE;
END;
---------------------------------OK创建所有数据库中的表-------------------------------------------
调用:CALL create_tables_of_databases2('znke_z_log_', 'log' ,'znke_z_log.log' ,0 , 128);
参数说明:1、目标数据库的前缀 2、要创建到目标数据库中的表名称 3、源数据库名称.源表名称 4、目标数据库后缀最小数 5、目标数据库后缀最大数(数据库总数量)
CREATE PROCEDURE `create_tables_of_databases2`(IN db_pre VARCHAR(20),IN table_name VARCHAR(20),IN source_db_and_tableName VARCHAR(30),IN min_num INT,IN max_num INT)
BEGIN
DECLARE i INT;
DECLARE db_name VARCHAR(20);
DECLARE sql_text VARCHAR(2000);
SET i=min_num;
SET db_name='';
SET sql_text='';
WHILE i<max_num DO
SET db_name=CONCAT(db_pre,i);
SET sql_text=CONCAT('create table ', db_name , '.' ,table_name ,' like ' ,source_db_and_tableName);
SELECT sql_text;
SET @sql_text=sql_text;
PREPARE stmt FROM @sql_text;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET i=i+1;
END WHILE;
END;
---------------------------------OK删除所有数据库中的表-------------------------------------------
调用:CALL delete_tables_of_databases('znke_z_log_', 'log' ,0 , 128);
参数说明:1、目标数据库的前缀 2、要创建到目标数据库中的表名称 3、目标数据库后缀最小数 4、目标数据库后缀最大数(数据库总数量)
CREATE PROCEDURE `delete_tables_of_databases`(IN db_pre VARCHAR(20),IN table_name VARCHAR(20),IN min_num INT,IN max_num INT)
BEGIN
DECLARE i INT;
DECLARE db_name VARCHAR(20);
DECLARE sql_text VARCHAR(2000);
SET i=min_num;
SET db_name='';
SET sql_text='';
WHILE i<max_num DO
SET db_name=CONCAT(db_pre,i);
SET sql_text=CONCAT('drop table ', db_name , '.' ,table_name);
SELECT sql_text;
SET @sql_text=sql_text;
PREPARE stmt FROM @sql_text;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET i=i+1;
END WHILE;
END;
提示:创建库或表时可以用存储过程 删除库或表时也可以用存储过程 方便又省时
---------------------------------创建所有数据库-------------------------------------------
调用:call create_databases('znke_z_log_', 0, 128);
参数说明:
1、要创建的数据库前缀
2、目标数据库后缀最小数
3、目标数据库后缀最大数(数据库总数量)
CREATE `create_databases`(IN db_pre VARCHAR(20),IN min_num INT,IN max_num INT)
BEGIN
DECLARE i INT;
DECLARE db_name VARCHAR(20);
DECLARE sql_text VARCHAR(2000);
SET i=min_num;
SET db_name='';
SET sql_text='';
WHILE i<max_num DO
SET db_name=CONCAT(db_pre,i);
SET sql_text=CONCAT('CREATE DATABASE ', db_name, '' );
SELECT sql_text;
SET @sql_text=sql_text;
PREPARE stmt FROM @sql_text;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET i=i+1;
END WHILE;
END;
---------------------------------删除所有数据库-------------------------------------------
调用:call delete_databases('znke_z_log_', 0, 128);
参数说明:
1、要删除的数据库前缀
2、目标数据库后缀最小数
3、目标数据库后缀最大数(数据库总数量)
CREATE `delete_databases`(IN db_pre VARCHAR(20),IN min_num INT,IN max_num INT)
BEGIN
DECLARE i INT;
DECLARE db_name VARCHAR(20);
DECLARE sql_text VARCHAR(2000);
SET i=min_num;
SET db_name='';
SET sql_text='';
WHILE i<max_num DO
SET db_name=CONCAT(db_pre,i);
SET sql_text=CONCAT('drop DATABASE ', db_name, '' );
SELECT sql_text;
SET @sql_text=sql_text;
PREPARE stmt FROM @sql_text;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET i=i+1;
END WHILE;
END;
---------------------------------创建所有数据库中的表-------------------------------------------
调用:CALL create_tables_of_databases('znke_z_log_', 'log' ,'znke_z_log.log' ,0 , 128);
参数说明:
1、目标数据库的前缀
2、要创建到目标数据库中的表名称
3、源数据库名称.源表名称(原理从已创建的库中复制,所以先要在源数据库中创建好设计好的表结构)
4、目标数据库后缀最小数
5、目标数据库后缀最大数(数据库总数量)
CREATE PROCEDURE `create_tables_of_databases`(IN db_pre VARCHAR(20),IN table_name VARCHAR(20),IN source_db_and_tableName VARCHAR(30),IN min_num INT,IN max_num INT)
BEGIN
DECLARE i INT;
DECLARE db_name VARCHAR(20);
DECLARE sql_text VARCHAR(2000);
SET i=min_num;
SET db_name='';
SET sql_text='';
WHILE i<max_num DO
SET db_name=CONCAT(db_pre,i);
SET sql_text=CONCAT('create table ', db_name , '.' ,table_name ,' like ' ,source_db_and_tableName);
SELECT sql_text;
SET @sql_text=sql_text;
PREPARE stmt FROM @sql_text;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET i=i+1;
END WHILE;
END;
---------------------------------删除所有数据库中的表-------------------------------------------
调用:CALL delete_tables_of_databases('znke_z_log_', 'log' ,0 , 128);
参数说明:
1、目标数据库的前缀
2、要创建到目标数据库中的表名称
3、目标数据库后缀最小数
4、目标数据库后缀最大数(数据库总数量)
CREATE PROCEDURE `delete_tables_of_databases`(IN db_pre VARCHAR(20),IN table_name VARCHAR(20),IN min_num INT,IN max_num INT)
BEGIN
DECLARE i INT;
DECLARE db_name VARCHAR(20);
DECLARE sql_text VARCHAR(2000);
SET i=min_num;
SET db_name='';
SET sql_text='';
WHILE i<max_num DO
SET db_name=CONCAT(db_pre,i);
SET sql_text=CONCAT('drop table ', db_name , '.' ,table_name);
SELECT sql_text;
SET @sql_text=sql_text;
PREPARE stmt FROM @sql_text;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET i=i+1;
END WHILE;
END;
---------------------------------创建数据库中所有分表(单库多表 分片模式)-------------------------------------------
调用:call create_tables('alibaba_db', 'user_', 0 ,128);
参数说明:
1、目标数据库(在该数据库中建立很多分表)
2、要创建到目标数据库中的表前缀
3、目标数据库后缀最小数
4、目标数据库后缀最大数(数据库总数量)
CREATE `create_tables`(IN db_name VARCHAR(20),IN table_pre VARCHAR(20), IN min_num INT,IN max_num INT)
BEGIN
DECLARE i INT;
DECLARE table_name VARCHAR(20);
DECLARE sql_text VARCHAR(2000);
SET i=min_num;
SET table_name='';
SET sql_text='';
WHILE i<max_num DO
SET table_name=CONCAT(table_pre,i);
SET sql_text=CONCAT('CREATE TABLE ',db_name ,'.',table_name, '(
id VARCHAR(32) NOT NULL,
user_id VARCHAR(32),
direction VARCHAR(8) ,
operate_score INT(11),
operator VARCHAR(32) ,
operate_time DATETIME,
score_status INT(4) ,
score_rule_id VARCHAR(32) DEFAULT NULL ,
member_level INT(4) DEFAULT NULL ,
score_type INT(4) ,
product_id VARCHAR(32) DEFAULT NULL ,
remark VARCHAR(256) DEFAULT NULL ,
operate_source INT(4) DEFAULT NULL ,
gmt_modify DATETIME NOT NULL,
gmt_create DATETIME NOT NULL,
PRIMARY KEY (id)
) ENGINE=INNODB DEFAULT CHARSET=utf8' );
SELECT sql_text;
SET @sql_text=sql_text;
PREPARE stmt FROM @sql_text;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET i=i+1;
END WHILE;
END;
---------------------------------删除数据库中所有分表(单库多表 分片模式)-------------------------------------------
调用:call delete_tables('alibaba_db', 'user_', 0 ,128);
参数说明:
1、目标数据库(在该数据库中建立很多分表)
2、要创建到目标数据库中的表前缀
3、目标数据库后缀最小数
4、目标数据库后缀最大数(数据库总数量)
CREATE `delete_tables`(IN db_name VARCHAR(20),IN table_pre VARCHAR(20), IN min_num INT,IN max_num INT)
BEGIN
DECLARE i INT;
DECLARE table_name VARCHAR(20);
DECLARE sql_text VARCHAR(2000);
SET i=min_num;
SET table_name='';
SET sql_text='';
WHILE i<max_num DO
SET table_name=CONCAT(table_pre,i);
SET sql_text=CONCAT('drop table ', db_name , '.' ,table_name);
SELECT sql_text;
SET @sql_text=sql_text;
PREPARE stmt FROM @sql_text;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET i=i+1;
END WHILE;
END;
----------------------靓丽的分割线 结束---------------------------------------
============靓丽的分割线 以下为老版本 不可以动态传参数 仅供参考==============
-----------------------------MySQL动态创建多张表-----------------------------------------------
说明:1、修改SET table_pre='score_stream_' 为你需要的数据库名称前缀
2、修改SET i=1 为你需要开始的数量后缀(最小后缀)
3、修改WHILE i<16 为你最大的数量后缀(最大后缀)
call create_tables();
CREATE PROCEDURE `create_tables`()
BEGIN
DECLARE i INT;
DECLARE table_name VARCHAR(20);
DECLARE table_pre VARCHAR(20);
DECLARE sql_text VARCHAR(2000);
SET i=1;
SET table_name='';
SET table_pre='score_stream_';
SET sql_text='';
WHILE i<16 DO
IF i<10 THEN SET table_name=CONCAT(table_pre,'0',i);
ELSE SET table_name=CONCAT(table_pre,i);
END IF;
SET sql_text=CONCAT('CREATE TABLE ', table_name, '(
id VARCHAR(32) NOT NULL,
user_id VARCHAR(32),
direction VARCHAR(8) ,
operate_score INT(11),
operator VARCHAR(32) ,
operate_time DATETIME,
score_status INT(4) ,
score_rule_id VARCHAR(32) DEFAULT NULL ,
member_level INT(4) DEFAULT NULL ,
score_type INT(4) ,
product_id VARCHAR(32) DEFAULT NULL ,
remark VARCHAR(256) DEFAULT NULL ,
operate_source INT(4) DEFAULT NULL ,
gmt_modify DATETIME NOT NULL,
gmt_create DATETIME NOT NULL,
PRIMARY KEY (id)
) ENGINE=INNODB DEFAULT CHARSET=utf8' );
SELECT sql_text;
SET @sql_text=sql_text;
PREPARE stmt FROM @sql_text;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET i=i+1;
END WHILE;
END
-----------------------------MySQL动态创建多个数据库-----------------------------------------------
说明:1、修改SET table_pre='score_stream_' 为你需要的数据库名称前缀
2、修改SET i=1 为你需要开始的数量后缀(最小后缀)
3、修改WHILE i<16 为你最大的数量后缀(最大后缀)
call create_databases();
CREATE PROCEDURE `create_databases`()
BEGIN
DECLARE i INT;
DECLARE table_name VARCHAR(20);
DECLARE table_pre VARCHAR(20);
DECLARE sql_text VARCHAR(2000);
SET i=1;
SET table_name='';
SET table_pre='score_stream_';
SET sql_text='';
WHILE i<16 DO
IF i<10 THEN SET table_name=CONCAT(table_pre,'0',i);
ELSE SET table_name=CONCAT(table_pre,i);
END IF;
SET sql_text=CONCAT('CREATE DATABASE ', table_name, '' );
SELECT sql_text;
SET @sql_text=sql_text;
PREPARE stmt FROM @sql_text;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET i=i+1;
END WHILE;
END
-----------------------------MySQL动态删除多个数据库-----------------------------------------------
说明:具体参数可以根据情况调整
CREATE PROCEDURE `create_databases`()
BEGIN
DECLARE i INT;
DECLARE table_name VARCHAR(20);
DECLARE table_pre VARCHAR(20);
DECLARE sql_text VARCHAR(2000);
SET i=1;
SET table_name='';
SET table_pre='score_stream_';
SET sql_text='';
WHILE i<16 DO
IF i<10 THEN SET table_name=CONCAT(table_pre,'0',i);
ELSE SET table_name=CONCAT(table_pre,i);
END IF;
SET sql_text=CONCAT('CREATE DATABASE ', table_name, '' );
SELECT sql_text;
SET @sql_text=sql_text;
PREPARE stmt FROM @sql_text;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET i=i+1;
END WHILE;
END;
-----------------------------MySQL动态删除多个数据表-----------------------------------------------
CREATE PROCEDURE `delete_tables`()
BEGIN
DECLARE i INT;
DECLARE table_name VARCHAR(20);
DECLARE table_pre VARCHAR(20);
DECLARE sql_text VARCHAR(2000);
SET i=0;
SET table_name='';
SET table_pre='score_stream_';
SET sql_text='';
WHILE i<1024 DO
SET table_name=CONCAT(table_pre,i);
SET sql_text=CONCAT('drop TABLE ', table_name, '' );
SELECT sql_text;
SET @sql_text=sql_text;
PREPARE stmt FROM @sql_text;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET i=i+1;
END WHILE;
END;
---------------------------------OK创建所有数据库中的表-------------------------------------------
调用:CALL create_tables_of_databases2('znke_z_log_', 'log' ,'znke_z_log.log' ,0 , 128);
参数说明:1、目标数据库的前缀 2、要创建到目标数据库中的表名称 3、源数据库名称.源表名称 4、目标数据库后缀最小数 5、目标数据库后缀最大数(数据库总数量)
CREATE PROCEDURE `create_tables_of_databases2`(IN db_pre VARCHAR(20),IN table_name VARCHAR(20),IN source_db_and_tableName VARCHAR(30),IN min_num INT,IN max_num INT)
BEGIN
DECLARE i INT;
DECLARE db_name VARCHAR(20);
DECLARE sql_text VARCHAR(2000);
SET i=min_num;
SET db_name='';
SET sql_text='';
WHILE i<max_num DO
SET db_name=CONCAT(db_pre,i);
SET sql_text=CONCAT('create table ', db_name , '.' ,table_name ,' like ' ,source_db_and_tableName);
SELECT sql_text;
SET @sql_text=sql_text;
PREPARE stmt FROM @sql_text;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET i=i+1;
END WHILE;
END;
---------------------------------OK删除所有数据库中的表-------------------------------------------
调用:CALL delete_tables_of_databases('znke_z_log_', 'log' ,0 , 128);
参数说明:1、目标数据库的前缀 2、要创建到目标数据库中的表名称 3、目标数据库后缀最小数 4、目标数据库后缀最大数(数据库总数量)
CREATE PROCEDURE `delete_tables_of_databases`(IN db_pre VARCHAR(20),IN table_name VARCHAR(20),IN min_num INT,IN max_num INT)
BEGIN
DECLARE i INT;
DECLARE db_name VARCHAR(20);
DECLARE sql_text VARCHAR(2000);
SET i=min_num;
SET db_name='';
SET sql_text='';
WHILE i<max_num DO
SET db_name=CONCAT(db_pre,i);
SET sql_text=CONCAT('drop table ', db_name , '.' ,table_name);
SELECT sql_text;
SET @sql_text=sql_text;
PREPARE stmt FROM @sql_text;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET i=i+1;
END WHILE;
END;
发表评论
-
性能优化重要的mysql profile功能
2023-02-24 23:24 151关键字:性能优化重要的mysql profile功能 ... -
mysql源码解读之事务提交过程--第二篇
2018-01-10 15:03 463关键字:mysql源码解读 ... -
mysql源码解读之事务提交过程--第一篇
2018-01-10 14:50 1483关键字:mysql源码解读之事务提交过程--第一篇 mys ... -
高可用、开源的Redis缓存集群方案
2015-04-16 12:25 3713推荐综合架构交流群:J ... -
Oracle实现类split函数的方
2015-04-16 10:10 599关键字:Oracle实现类split函数的方 项目里需要保存结 ... -
各种Nosql数据库系统对比及应用场景分析
2015-04-15 16:29 720关键字:各种Nosql数据库系统对比及应用场景分析 导读:Kr ... -
数据库迁移之从oracle 到 MySQL
2015-04-11 09:38 866关键字:数据库迁移之从oracle 到 MySQL 开场白: ... -
Mongodb命令大全
2015-03-18 11:18 760关键字:Mongodb命令大全 他支持的数据结构非常松散,是类 ... -
MongoDB中缩减Shard集群(删除一个Shard)--删除一个分片
2015-03-13 12:29 3572关键字:MongoDB中缩减Shard集群(删除一个Shard ... -
Mongodb副本集(三个节点:一主一从一仲裁)-配置文件方式启动
2015-03-05 17:32 2019关键字:Mongodb副本集(三个节点:一主一从一仲裁)-配置 ... -
mongodb 数据库操作--备份 还原 导出 导入
2015-03-02 17:17 2161关键字:mongodb 数据库 ... -
win7 64位的数据源(ODBC)配置问题
2015-01-20 16:36 1028关键字:win7 64位的数据源(ODBC)配置问题 ... -
MongoDB spring 整合封装
2015-01-06 21:43 428关键字:MongoDB spring 整合封装 htt ... -
数据库连接池选型
2014-12-04 18:32 1125关键字:数据库连接池选型 proxool(与spring不太 ... -
atomikos(com.atomikos.icatch.SysException: Error in init(): Log already in use)
2014-10-15 13:12 8444关键字:atomikos(com.atomikos.icatc ... -
Mysql高可用架构
2014-09-02 11:41 2762关键字:Mysql高可用架构 最近花了点时间研究了一下mys ... -
MySQL原生HA方案 – Fabric体验之旅
2014-08-21 13:13 7052关键字:MySQL原生HA方案 – Fabric体验之旅 ta ... -
Windows下MySQL多实例运行
2014-08-21 10:09 6046关键字:Windows下MySQL多 ... -
性能优化重要的mysql profile功能
2014-02-10 15:25 51关键字:性能优化重要的mysql profile功能 my ... -
mysql profile功能
2014-02-10 15:12 24关键字:mysql profile功能 mysql的sql ...
相关推荐
实验4 使用SQL语句创建并管理数据库、数据表
经典SQL语句,sql备份数据库,sql基本入门的语法。
列车时刻信息数据库SQL文(内含有5张表,可以完整导入数据库中) 列车时刻数据库SQL 时刻信息 站站查询 车次查询 站点查询 票价查询
在一张或多张表中使用等值或非等值连接 使用外连接查询 自连接查询 第五章 组函数 定义及有效的使用组函数 使用Group By对查询数据分组 使用HAVING子句对分组后的数据进行过滤 第六章 子查询 第七章 数据建模及...
在VC++6.0中利用Acess数据库关联多张表
那么sql server数据库中如何判断是否存在某张表呢,如果不存在又如何创建与该表结构相同的新表呢,(如:已知表Log,判断当前月份的表Log_201512是否存在,若不存在,创建之)?其实很简单,只需一条sql语句,...
如何连接2如何连接2个数据库合并2张表如何连接2个数据库合并2张表如何连接2个数据库合并2张表如何连接2个数据库合并2张表如何连接2个数据库合并2张表如何连接2个数据库合并2张表个数据库合并2张表
完整的erp数据库sql,共82张表
经典的关联语句经典的关联语句经典的关联语句经典的关联语句经典的关联语句
SQL Server支持多个实例,即支持在同一台计算机上同时运行多个SQL Server数据库引擎实例,每个SQL Server数据库引擎实例各有一套不为其它实例共享的系统及用户数据库。应用程序连接同一台计算机上的SQL Server数据库...
全国省市区3级 3张表的创建文件,可直接在MSSQL数据库创建生成表。
1、1=1,1=2的使用,在SQL语句组合时用的较多 “where 1=1” 是表示选择全部 “where 1=2”全部不选, 如: if @strWhere !='' begin set @strSQL = 'select count(*) as Total from [' + @tblName + '] where ' +...
生成数据库表insert语句脚本,可将某张表的内容自动生成对应的insert语句
android SQLite 一个数据库创建多个表,并对指定的表进行增删改查操作,具体使用SQLite数据库时,可以将这个作为模版,在此基础上增加或减少数据库及表,操作起来非常的方便。
数据库数据 导出为SQl语句 工具,支持 各种数据库 数据导出
在使用SqlServer的过程中,我们可能需要将表从一个数据库复制到另一个数据库中.
中国省市县三级数据库表SQL完美版
数据库文件(四张表)+ER图+sql建库源码+python源码+实验报告 创建数据库,通过python连接后可以实现基本的增删改查功能
分库:从单个数据库拆分成多个数据库的过程,将数据散落在多个数据库中。 分表:从单张表拆分成多张表的过程,将数据散落在多张表内。 2.2 为什么要分库分表? 关键字:提升性能、增加可用性。 2.2.1 从性能上看 ...
1、1=1,1=2的使用,在SQL语句组合时用的较多 “where 1=1” 是表示选择全部 “where 1=2”全部不选, 如: if @strWhere !='' begin set @strSQL = 'select count(*) as Total from [' + @tblName + '] where ' + ...