创建存储过程生成模拟数据1——搭建数据分析平台

使用MySQL数据库

1.建表

CREATE TABLE `airinfo` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `roomId` int(11) NOT NULL,
  `date` date DEFAULT NULL,
  `temperature` int(11) DEFAULT NULL,
  `humidity` int(11) DEFAULT NULL,
  `PM2.5` int(11) DEFAULT NULL,
  `CO2` int(11) DEFAULT NULL,
  `SO2` int(11) DEFAULT NULL,
  `score` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8


2.创建存储过程生成ID

DELIMITER ;; 
CREATE PROCEDURE insert1()
BEGIN 
DECLARE a INT DEFAULT 1; 
WHILE (a <= 1800) DO 
    -- repeat 
    insert into airinfo(id) values(a); 
    SET a = a + 1; 
END WHILE; 
commit; 
END;; 

CALL insert1();

3.创建存储过程生成roomID

DELIMITER ;; 
CREATE PROCEDURE insert2()

BEGIN 
DECLARE a INT DEFAULT 1; 
WHILE (a <= 300) DO 
	update airdata.airinfo set roomID = 101 where id = a ;
	SET a = a + 1; 
END WHILE; 
WHILE (a <= 600) DO 
	update airdata.airinfo set roomID = 102 where id = a ;
	SET a = a + 1; 
END WHILE;
WHILE (a <= 900) DO 
	update airdata.airinfo set roomID = 201 where id = a ;
	SET a = a + 1; 
END WHILE;
WHILE (a <= 1200) DO 
	update airdata.airinfo set roomID = 202 where id = a ;
	SET a = a + 1; 
END WHILE;
WHILE (a <= 1500) DO 
	update airdata.airinfo set roomID = 301 where id = a ;
	SET a = a + 1; 
END WHILE;
WHILE (a <= 1800) DO 
	update airdata.airinfo set roomID = 302 where id = a ;
	SET a = a + 1; 
END WHILE;
END;; 
CALL insert2();

4.创建存储过程生成date

DELIMITER ;; 
create PROCEDURE insert3()  
BEGIN  
DECLARE a INT DEFAULT 1;   
DECLARE nowdate date DEFAULT '20170101';  


set nowdate = DATE_FORMAT('20170101','%Y%m%d');  
WHILE a < 301  
DO  
update airdata.airinfo set date = nowdate where id = a ;
SET a = a + 1;   
set nowdate = DATE_ADD(nowdate,INTERVAL 1 DAY);  
END WHILE; 


set nowdate = DATE_FORMAT('20170101','%Y%m%d');  
WHILE a < 601   
DO  
update airdata.airinfo set date = nowdate where id = a ;
SET a = a + 1;   
set nowdate = DATE_ADD(nowdate,INTERVAL 1 DAY);  
END WHILE; 


set nowdate = DATE_FORMAT('20170101','%Y%m%d');  
WHILE a < 901   
DO  
update airdata.airinfo set date = nowdate where id = a ;
SET a = a + 1;   
set nowdate = DATE_ADD(nowdate,INTERVAL 1 DAY);  
END WHILE;  


set nowdate = DATE_FORMAT('20170101','%Y%m%d');  
WHILE a < 1201   
DO  
update airdata.airinfo set date = nowdate where id = a ;
SET a = a + 1;   
set nowdate = DATE_ADD(nowdate,INTERVAL 1 DAY);  
END WHILE;  


set nowdate = DATE_FORMAT('20170101','%Y%m%d');  
WHILE a < 1501   
DO  
update airdata.airinfo set date = nowdate where id = a ;
SET a = a + 1;   
set nowdate = DATE_ADD(nowdate,INTERVAL 1 DAY);  
END WHILE;  


set nowdate = DATE_FORMAT('20170101','%Y%m%d');  
WHILE a < 1801   
DO  
update airdata.airinfo set date = nowdate where id = a ;
SET a = a + 1;   
set nowdate = DATE_ADD(nowdate,INTERVAL 1 DAY);  
END WHILE;  
  
END;;
CALL insert3();






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值