• 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();
  • 相关阅读:
    css 超出两行省略号,超出一行省略号
    css 去掉i标签默认斜体样式
    Spring 使用单选按钮
    Spring Maven工程引入css,js
    Sping 补充完成修改功能
    Spring 控制器层如何启用验证?
    Spring 控制器层如何调用DAO层
    spring boot工程如何启用 热启动功能
    Spring 视图层如何显示验证消息提示
    Sping POJO中如何添加验证规则和验证消息提示
  • 原文地址:https://www.cnblogs.com/lemon-flm/p/7649483.html
Copyright © 2020-2023  润新知