sql的存储过程实例--循环动态创建表
创建一个存储过程,动态添加100张track表
表名track_0 ~~ track_99
注:sql的拼接只能用 CONCAT()函数
-- 创建一个存储过程
CREATE PROCEDURE create_track_table() begin declare num int; -- 定义一个循环变量
set num=0; -- 循环 100 遍
while num <= 99 do
SET @table_name=CONCAT('track_',num); -- 定义表名(变量定义表名)
-- 拼接字符串需要用 concat()函数 -- 定义创建 table的 sql语句
SET @sql_begin='CREATE TABLE ';
SET @sql_end="(
`mac_id` varchar(16) NOT NULL COMMENT '设备IMEI',
`mac_type` varchar(12) DEFAULT NULL,
`channel` varchar(3) DEFAULT 'UDP',
`type` smallint(2) NOT NULL,
`x` int(4) NOT NULL,
`y` int(4) NOT NULL,
`gpstime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`bvalid` varchar(10) DEFAULT '' COMMENT '0:无效 1:有效 2:基站定位 ',
`speed` int(2) DEFAULT NULL,
`dir` int(2) DEFAULT NULL,
`s1` varchar(32) DEFAULT NULL,
`s2` varchar(48) DEFAULT NULL,
`s3` varchar(48) DEFAULT NULL,
`s4` varchar(128) DEFAULT NULL,
`ins_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`imagefile` char(1) DEFAULT '',
`battery` tinyint(4) DEFAULT NULL COMMENT '电量',
KEY `mac_id` (`mac_id`,`mac_type`,`gpstime`) USING BTREE
) ENGINE=MyISAM DEFAULT CHARSET=utf8"; set @create_sql=CONCAT(@sql_begin,@table_name,@sql_end); -- 拼接一个完整的sql语句 PREPARE create_table from @create_sql; -- 预处理sql语句 (还可以加参数)
EXECUTE create_table; -- 执行 set num=num+1; -- 结束循环
end while;
commit;
end -- 执行存储过程
CALL create_track_table();
sql的存储过程实例--循环动态创建表的更多相关文章
- Delphi调用SQL分页存储过程实例
Delphi调用SQL分页存储过程实例 (-- ::)转载▼ 标签: it 分类: Delphi相关 //-----下面是一个支持任意表的 SQL SERVER2000分页存储过程 //----分页存 ...
- MyBatis动态创建表
转载请注明出处:https://www.cnblogs.com/Joanna-Yan/p/9187538.html 项目中业务需求的不同,有时候我们需要动态操作数据表(如:动态建表.操作表字段等).常 ...
- YII2框架动态创建表模型
YII2框架动态创建表模型 在YII2中,每个表对应一个model类 在开发过程中,我们在填写一个大型表单的时候,表单里有N个select下拉列表,每个下拉select来自于不同的表: 如果要在程序里 ...
- python在sqlite动态创建表源码
代码之余,将开发过程中经常用的代码片段备份一下,如下的代码是关于python在sqlite动态创建表的代码,应该能对各位有所用. import sqlite3 as db conn = db.conn ...
- sql的存储过程实例--动态根据表数据复制一个表的数据到另一个表
动态根据表数据复制一个表的数据到另一个表 把track表的记录 根据mac_id后两位数字,复制到对应track_? 的表中 如:mac_id=12345678910,则后两位10 对应表为track ...
- SQL Server 动态创建表结构
需求是,在word里面设计好表结构(主要在word中看起来一目了然,方便维护),然后复制sql 里面,希望动态创建出来 存储表结构的表 CREATE TABLE [dbo].[Sys_CreateTa ...
- Sql语句不能识别Go的解决办法(动态创建表的触发器)
问题来源 用sqlserver直接打开sql文本,执行没问题,但是当用Sqlcommand类执行cmdtext命令文本时总是失败报错. 原因分析及解决 用数据库直接执行sql语句没问题,甚至还可以用G ...
- 菜鸟学SSH(十八)——Hibernate动态模型+JRebel实现动态创建表
项目用的是SSH基础框架,当中有一些信息非常相似,但又不尽同样.假设每个建一个实体的话,那样实体会太多.假设分组抽象,然后继承,又不是特别有规律.鉴于这样的情况.就打算让用户自己配置要加入的字段,然后 ...
- Spring Boot:实现MyBatis动态创建表
综合概述 在有些应用场景中,我们会有需要动态创建和操作表的需求.比如因为单表数据存储量太大而采取分表存储的情况,又或者是按日期生成日志表存储系统日志等等.这个时候就需要我们动态的生成和操作数据库表了. ...
随机推荐
- 爬虫技巧-西瓜视频MP4地址获取
记录一下西瓜视频MP4地址的获取步骤 目标: 指定西瓜视频地址,如 https://www.ixigua.com/a6562763969642103303/#mid=6602323830,获取其视频M ...
- Max Sum—hdu1003(简单DP) 标签: dp 2016-05-05 20:51 92人阅读 评论(0)
Max Sum Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- DataStage 的优化原则
DataStage Job优化指导原则之一:算法的优化. 任何程序的优化,第一点首先都是算法的优化.当然这一点并不仅仅局限于计算机程序的优化,实际生活中也处处可以体现这一点.条条大路通罗 ...
- MapReduce编程解析
MapReduce编程模型之案例 wordcount 输入数据 atguigu atguiguss sscls clsjiaobanzhangxuehadoop 输出数据 atguigu 2banzh ...
- js加减运算·传参
<!DOCTYPE html><html> <head> <meta charset="utf-8" /> <title> ...
- iOS笔记之UIKit_UILable
UILabel*label3 = [[UILabel alloc]initWithFrame:CGRectMake(0, 60+10+60+10+60+10, 320, 60)]; label3.ba ...
- [jquery] 遮罩弹窗,点击遮罩弹窗自动隐藏
$("#id_sign_forbidden_win .c-content").click(function(event){ event.stopPropagation(); // ...
- Windows 7 系统中开启 ASP.NET State Service 服务的方法
控制面板 -> 程序和功能 -> “打开或者关闭 Windows 功能”对话框 -> Internet 信息服务 -> 万维网服务 -> 应用程序开发功能 -> A ...
- SQL Server nested loop join 效率试验
从很多网页上都看到,SQL Server有三种Join的算法, nested loop join, merge join, hash join. 其中最常用的就是nested loop join. 在 ...
- ASP.NET MVC 中 Autofac依赖注入DI 控制反转IOC 了解一下
先简单了解一这个几个 名词的意思. 控制反转(IOC) 依赖注入(DI) 并不是某种技术. 而是一种思想.一种面向对象编程法则 什么是控制反转(IOC)? 什么是依赖注入(DI) 可以点击下面链接 ...