clean_data_in.sql 1013 B

123456789101112131415161718192021222324
  1. DELIMITER |
  2. ALTER EVENT cleandatain
  3. ON SCHEDULE EVERY 2 MINUTE
  4. DO
  5. BEGIN
  6. create temporary table tdi select * from datain where time < (select max(time) from datain);
  7. insert into sensor_id (sensor) select distinct sensor from tdi where sensor not in (select sensor from sensor_id where sensor is not null);
  8. insert into device_id (device) select distinct device from tdi where device not in (select device from device_id where device is not null);
  9. insert into var_id (var) select distinct var from tdi where var not in (select var from var_id);
  10. insert into data_storage (time,device_id,var_id,sensor_id,i2c,value) select time,did.id,vid.id,sens.id,i2c,value from tdi join var_id vid on vid.var = tdi.var join device_id did on did.device=tdi.device join sensor_id sens on sens.sensor=tdi.sensor;
  11. delete from datain where time <= (select max(time) from tdi);
  12. drop table tdi;
  13. END |
  14. DELIMITER ;
  15. DELIMITER |
  16. CREATE EVENT opti_datain
  17. ON SCHEDULE EVERY 1 DAY_HOUR
  18. DO
  19. BEGIN
  20. OPTIMIZE TABLE datain;
  21. END |
  22. DELIMITER ;