zoukankan      html  css  js  c++  java
  • 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 '0' 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 '0',
                `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();
  • 相关阅读:
    C# 生成windows 服务打包程序
    Ext.Net 复制GridPanel的数据
    The web.config file for this project is missing the required DirectRequestModule.
    微软 Remote App
    IIS 中的虚拟目录 和软连接
    C# 生成word 文档 代码 外加 IIS报错解决方案
    .NET:序列化和反序列化
    设计模式:常见设计模式适用的场景
    WebApi:自定义筛选器
    log4net:保存自定义参数到数据库
  • 原文地址:https://www.cnblogs.com/lemon-flm/p/7649483.html
Copyright © 2011-2022 走看看