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();
  • 相关阅读:
    Oracle EBS订单的流程(Order>AR)
    ORA12547: TNS:lost contact
    Shipping lock fix –> WSH_DELIVERY_DETAILS Column has leading or trailing spaces
    PLSQL 操作 ORACLE 服务器上的文件
    ORACLE EBS 11i常见问题
    solr 查询解析流程
    spring管理servlet的利器SimpleServletHandlerAdapter
    Solr Cache使用介绍及分析
    solr 自定义 dismax查询方式
    spring2中jpa的配置和使用
  • 原文地址:https://www.cnblogs.com/lemon-flm/p/7649483.html
Copyright © 2011-2022 走看看