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动态创建表
综合概述 在有些应用场景中,我们会有需要动态创建和操作表的需求.比如因为单表数据存储量太大而采取分表存储的情况,又或者是按日期生成日志表存储系统日志等等.这个时候就需要我们动态的生成和操作数据库表了. ...
随机推荐
- 【python-字典】判断python字典中key是否存在的
一般有两种通用做法: 第一种方法:使用自带函数实现: 在python的字典的属性方法里面有一个has_key()方法: #生成一个字典 d = {'name':Tom, 'age':10, 'Tel' ...
- web-day2
第2章WEB02-CSS&JS篇 今日任务 使用CSS完成网站首页的美化 使用CSS完成网站注册页面的美化 使用JS完成简单的数据校验 使用JS完成图片轮播效果 教学导航 教学目标 了解CSS ...
- 第70讲:Scala界面GUI编程实战详解
今天又学习了王家林老师的scala学习讲座第70讲,关于scala的界面编程,让我们来初步学习一下scala中界面编程的过程. 信息来源于 DT大数据梦工厂微信公众账号:DT_Spark 关注微信账号 ...
- 9.DataGrid数据表格
后台获取数据并将其转换为json数组格式: 前台获取数据并显示在数据表格中:
- hdu 5092 线裁剪(纵向连线最小和+输出路径)
http://acm.hdu.edu.cn/showproblem.php?pid=5092 给一个m*n的矩阵,找到一个纵向的"线"使得线上的和最小并输出这条线,线能向8个方向延 ...
- kafka_shell操作
单机版 开启进程: ./bin/kafka-server-start.sh config/server.properties 查看topic列表: ./bin/kafka-topics.sh --li ...
- jvm虚拟机--堆内存
reserved 保留区域 堆 所有对象实例都在这里分配内存. 是垃圾收集的主要区域("GC 堆").现代的垃圾收集器基本都是采用分代收集算法,主要思想是针对不同的对象采取不同的垃 ...
- Android自适应屏幕的实现方法
首先我们先了解下手机分辨率 分辨率是指屏幕上有横竖各有多少个像素目前手机分辨率大概情况如下: QVGA 分辨率:320×240 简 介:QVGA即"Quarter VGA". ...
- Linux下替代grep高效文本搜索工具
1.ack yum install ack 2.ag git clone https://github.com/ggreer/the_silver_searcher.git yum install a ...
- OSLab文件描述符
日期:2019/3/24 内容:Linux文件描述符. 一.基本概念 文件描述符(File Descriptor) 一个非负整数.应用程序利用文件描述符来访问文件.打开现存文件或新建文件时,内 ...