mysql创建存储过程,批量建表分表00到99
2024-08-26 14:08:09
这里以sqlyong为软件示例:
--创建存储过程
DELIMITER $$ CREATE PROCEDURE `createTablesWithIndex`()
BEGIN
DECLARE `@i` INT(11);
DECLARE `@createSql` VARCHAR(2560);
DECLARE `@createIndexSql1` VARCHAR(2560);
DECLARE `@createIndexSql2` VARCHAR(2560);
DECLARE `@createIndexSql3` VARCHAR(2560);
DECLARE `@j` VARCHAR(10); SET `@i`=0;
WHILE `@i`< 100 DO IF `@i` < 10 THEN
SET `@j` = CONCAT(0,`@i`);
ELSE
SET `@j` = `@i`;
END IF; -- `M_ID` bigint AUTO_INCREMENT PRIMARY KEY NOT NULL,
-- 创建表
SET @createSql = CONCAT('CREATE TABLE IF NOT EXISTS table_',`@j`,'(
`newsid` VARCHAR(255) NOT NULL ,
`classId` VARCHAR(255) DEFAULT NULL,
`kindId` VARCHAR(255) DEFAULT NULL,
`myOther` VARCHAR(255) DEFAULT NULL,
`headTitle` VARCHAR(255) DEFAULT NULL,
`content` VARCHAR(255) DEFAULT NULL,
`connectRealtive` VARCHAR(255) DEFAULT NULL,
`author` VARCHAR(255) DEFAULT NULL,
`editor` VARCHAR(255) DEFAULT NULL,
`newsFrom` VARCHAR(255) DEFAULT NULL,
`top` VARCHAR(255) DEFAULT NULL,
`newsTime` VARCHAR(255) DEFAULT NULL,
`hits` VARCHAR(255) DEFAULT NULL,
`state` VARCHAR(255) DEFAULT NULL,
`tag` VARCHAR(255) DEFAULT NULL
) '
);
PREPARE stmt FROM @createSql;
EXECUTE stmt; -- 创建索引
SET @createIndexSql1 = CONCAT('create index `newsid` on table_',`@j`,'(`newsid`);');
PREPARE stmt FROM @createIndexSql1;
EXECUTE stmt;
SET `@i`= `@i`+1;
END WHILE;
END
最后新建一个查询
CALL createTablesWithIndex() 执行
最后会执行批量建表操作
最新文章
- [QualityCenter]设置工作流脚本-设置不同字段值关联不同列表
- ENTBOOST 2014.180L 发布,开源企业IM免费企业即时通讯
- java新手笔记8 包
- grunt插件[font-spider] : 转码,压缩字体 @font-face
- 大整数算法[10] Comba乘法(实现)
- HDU 5855 Less Time, More profit
- Python的特性(property)
- SqlServer中用SQL语句附加数据库及修改数据库逻辑文件名
- iOS开发基础篇-手写控件
- 一步一步安装SQL Server 2017
- Unity3D 粒子系统 属性
- mysql 5.7 修改字符编码
- checkpoint-BLCR部署和测试(源码)
- 使用python命令构建最简单的web服务
- SQL-28 查找描述信息中包括robot的电影对应的分类名称以及电影数目,而且还需要该分类对应电影数量>;=5部
- Centos7搭建软路由
- PureMVC剖析
- bootstrap里面的popover组件如何使鼠标移入可以对弹出框进行一系列的操作
- 001-Spring的设计理念和整体架构
- python 中写hive 脚本