创建一个存储过程,动态添加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的存储过程实例--循环动态创建表的更多相关文章

  1. Delphi调用SQL分页存储过程实例

    Delphi调用SQL分页存储过程实例 (-- ::)转载▼ 标签: it 分类: Delphi相关 //-----下面是一个支持任意表的 SQL SERVER2000分页存储过程 //----分页存 ...

  2. MyBatis动态创建表

    转载请注明出处:https://www.cnblogs.com/Joanna-Yan/p/9187538.html 项目中业务需求的不同,有时候我们需要动态操作数据表(如:动态建表.操作表字段等).常 ...

  3. YII2框架动态创建表模型

    YII2框架动态创建表模型 在YII2中,每个表对应一个model类 在开发过程中,我们在填写一个大型表单的时候,表单里有N个select下拉列表,每个下拉select来自于不同的表: 如果要在程序里 ...

  4. python在sqlite动态创建表源码

    代码之余,将开发过程中经常用的代码片段备份一下,如下的代码是关于python在sqlite动态创建表的代码,应该能对各位有所用. import sqlite3 as db conn = db.conn ...

  5. sql的存储过程实例--动态根据表数据复制一个表的数据到另一个表

    动态根据表数据复制一个表的数据到另一个表 把track表的记录 根据mac_id后两位数字,复制到对应track_? 的表中 如:mac_id=12345678910,则后两位10 对应表为track ...

  6. SQL Server 动态创建表结构

    需求是,在word里面设计好表结构(主要在word中看起来一目了然,方便维护),然后复制sql 里面,希望动态创建出来 存储表结构的表 CREATE TABLE [dbo].[Sys_CreateTa ...

  7. Sql语句不能识别Go的解决办法(动态创建表的触发器)

    问题来源 用sqlserver直接打开sql文本,执行没问题,但是当用Sqlcommand类执行cmdtext命令文本时总是失败报错. 原因分析及解决 用数据库直接执行sql语句没问题,甚至还可以用G ...

  8. 菜鸟学SSH(十八)——Hibernate动态模型+JRebel实现动态创建表

    项目用的是SSH基础框架,当中有一些信息非常相似,但又不尽同样.假设每个建一个实体的话,那样实体会太多.假设分组抽象,然后继承,又不是特别有规律.鉴于这样的情况.就打算让用户自己配置要加入的字段,然后 ...

  9. Spring Boot:实现MyBatis动态创建表

    综合概述 在有些应用场景中,我们会有需要动态创建和操作表的需求.比如因为单表数据存储量太大而采取分表存储的情况,又或者是按日期生成日志表存储系统日志等等.这个时候就需要我们动态的生成和操作数据库表了. ...

随机推荐

  1. 一个封存Id与状态对应键值的神器,BigInteger的setBit和testBit用法实例

    1,首先描述一下应用场景 比如,我们要对菜单做权限,控制不同角色菜单显示与不显示,角色为经理时,我们需要菜单id为 4,7,13,24的菜单显示,别的菜单不显示. 就是说,这时候我们要把4,7,13, ...

  2. linux下的各个目录(待填)

    /系统目录 / 下的目录: 1./bin(binary,二进制文件):打开里面会发现全是绿色的文件,也就是可执行文件,而且名字都是系统命令的名字,其实每个系统命令都是一个小的可执行的文件,这些命令都存 ...

  3. (暴力+优化)学渣的逆袭 -- zzuli -- 1785

    http://acm.zzuli.edu.cn/problem.php?id=1785 学渣的逆袭 Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 82  ...

  4. bootstrap1.2

      <html>   <head>   <meta charset="UTF-8">   <title></title> ...

  5. B - Avoiding a disaster

    Description Percy likes to be punctual. So much so that he always keeps three watches with him, so t ...

  6. AlexNet详解3

    Reference. Krizhevsky A, Sutskever I, Hinton G E. ImageNet Classification with Deep Convolutional Ne ...

  7. [翻译]第三天- 在 Mac 上运行 .NET Core 应用程序

    原文: http://michaelcrump.net/part3-aspnetcore/ *** 简介 该系列文章的完整列表如下: 第一天 - 在 Windows 下安装和运行 .NET Core ...

  8. IIS伪静态配置,使用URLRewriter实现伪静态

    前段时间开发公司官网,用到了URLRewriter实现伪静态,在VS调试模式下没有任何问题,部署到IIS上后总是提示404的错误,查了很久才知道IIS需要做相应的配置才能实现动态跳转的功能,现将IIS ...

  9. FastReport使用方法(C/S版)

    前言 这两天群里一直有群友问一些关于FastReport的问题,结合他们的问题,在这里做一个整理,有不明白的可以加 FastReport 交流群 群   号:554714044 工具 VS2017 + ...

  10. Microsoft.Office.Interop.Excel.ApplicationClass can not embedded 的问题

    用c#进行开发时,要做一个excel导入功能,期间使用到Microsoft.Office.Interop.Excel程序集,在用vs2008开发的时候没有报错,将这个程序集引用到vs2010的时候,便 ...