做我女朋友好不好套路网站,如何使用凡科建设网站,如何学会推广和营销,wordpress怎么修改页脚颜色原文:Mysql存储过程历史表备份应用背景SCADA采集系统需要将实时数据存入历史表。问题1#xff1a;如何更简单的添加历史数据#xff1f;2.海量历史数据#xff0c;比如年数据#xff0c;如何快速筛选 画曲线#xff1f;利用mysql的事件#xff0c;每小时存一次采集数据如何更简单的添加历史数据2.海量历史数据比如年数据如何快速筛选 画曲线利用mysql的事件每小时存一次采集数据每月备份历史表并且将原表清空。每个月1号凌晨1点将历史表备份名称命名为his_aic_20190501 01:00将原表清空。1.历史表备份1.1存储过程BEGININSERT INTO his_dic (ParentID,PointID,DICName,DICValue,StateDesc,AlarmThreshold,AlarmLevel,AlarmEnable,UpdatedTime)select ParentID,PointID,DICName,DICValue,StateDesc,AlarmThreshold,AlarmLevel,AlarmEnable,UpdatedTimeFROM dic on duplicate key updateParentIDVALUES( ParentID),PointIDVALUES(PointID ),DICNameVALUES(DICName ),DICValueVALUES(DICValue ),StateDescVALUES(StateDesc ),AlarmThresholdVALUES( AlarmThreshold),AlarmLevelVALUES(AlarmLevel ),AlarmEnableVALUES( AlarmEnable),UpdatedTimeVALUES(UpdatedTime );INSERT INTO his_doc (ParentID,PointID,DOCName,DetectDOStatus,DOCValue,StateDesc,ControlEnable,UpdatedTime)SELECT ParentID,PointID,DOCName,DetectDOStatus,DOCValue,StateDesc,ControlEnable,UpdatedTimeFROM doc on duplicate key updateParentIDVALUES(ParentID ),PointIDVALUES(PointID ),DOCNameVALUES(DOCName ),DetectDOStatusVALUES( DetectDOStatus),DOCValueVALUES(DOCValue ),StateDescVALUES(StateDesc ),ControlEnableVALUES( ControlEnable),UpdatedTimeVALUES(UpdatedTime );INSERT INTO his_aic (ParentID,PointID,AICName,AICValue,Unit,sAICValue,MaxAICValue,MinAICValue,Enable,UpdatedTime)SELECT ParentID,PointID,AICName,AICValue,Unit,sAICValue,MaxAICValue,MinAICValue,Enable,UpdatedTimeFROM aic on duplicate key updateParentIDVALUES(ParentID ),PointIDVALUES(PointID ),AICNameVALUES(AICName ),AICValueVALUES( AICValue),UnitVALUES(Unit ),sAICValueVALUES(sAICValue ),MaxAICValueVALUES(MaxAICValue ),MinAICValueVALUES(MinAICValue ),EnableVALUES( Enable),UpdatedTimeVALUES(UpdatedTime);END1.2使用说明步骤1 使用navicat工具管理Mysql函数右键新建函数在跳出得向导框选择过程点击下一步。步骤2 这里不需要任何操作直接点击完成因为没有参数传入传出。步骤3 将上面的存储过程代码复制进如下图框点击运行即可。步骤4点击保存输入名称。结果运行结果如下。2.创建每隔一小时保存历史数据任务2.1 建立事件任务event_To_HisCREATE EVENT if not exists event_To_Hison schedule every 1 houron completion preservedo call To_His();2.2 使用说明步骤1选择自己的数据点击右键选择cmd模式输入。步骤2将以上代码拷贝运行即可。结果运行结果如下。备注如果报错查看event是否开启: show variables like %sche%;将事件计划开启: set global event_scheduler1;关闭事件任务: alter event e_test ON COMPLETION PRESERVE DISABLE;开户事件任务: alter event e_test ON COMPLETION PRESERVE ENABLE;3.历史表按月备份3.1存储过程BEGINcreate table his_aic_temp like his_aic;set inow();set sqlstrCONCAT(rename table his_aic to his_aic_,cast(i as char),);select sqlstr;PREPARE renameHisBak FROM sqlstr;EXECUTE renameHisBak;rename table his_aic_temp to his_aic;create table his_dic_temp like his_dic;set inow();set sqlstrCONCAT(rename table his_dic to his_dic_,cast(i as char),);select sqlstr;PREPARE renameHisBak FROM sqlstr;EXECUTE renameHisBak;rename table his_dic_temp to his_dic;create table his_doc_temp like his_doc;set inow();set sqlstrCONCAT(rename table his_doc to his_doc_,cast(i as char),);select sqlstr;PREPARE renameHisBak FROM sqlstr;EXECUTE renameHisBak;rename table his_doc_temp to his_doc;END3.2使用说明详见1.24.建立每个月的第一天凌晨1点执行事件4.1建立任务event_HistoryBakCREATE DEFINERrootlocalhostEVENT event_HistoryBakON SCHEDULE EVERY 1 MONTH STARTS DATE_ADD(DATE_ADD(DATE_SUB(CURDATE(),INTERVAL DAY(CURDATE())-1 DAY),INTERVAL 1 MONTH),INTERVAL 1 HOUR)ON COMPLETION PRESERVE ENABLEDO call HistoryBak();4.2使用说明详见2.2QQ群20120449