存储过程
- 1. 存储过程:
两个两个不同的数据库 info,infoLog, 记录每一天不同的网络设备不同的 IP 产生的各种流量,从一个表中获取
这些记录并插入到一个表中。
使用 INSERT...SELECT,可以快速地从一个或多个表中向一个表中插入多个行。
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `prc_ipflow_daily`()
insert into report_ipflow_daily (
machine_id
,ip
,Log_time
,total
,ftp
,smtp
,http
,pop3
,imap
) SELECT ipflow.Machine_id,
INET_NTOA(ipflow.ip),
DATE_FORMAT(ipflow.Log_time, '%Y-%m-%d'),
sum(ipflow.total),
sum(ipflow.ftp),
sum(ipflow.smtp),
sum(ipflow.http),
sum(ipflow.pop3),
sum(ipflow.imap)
FROM infoLog.ipflow ipflow
GROUP BY ipflow.Machine_id,ipflow.ip,DATE_FORMAT(ipflow.Log_time, '%Y-%m-%d')
- 2. ON DUPLICATE KEY UPDATE total = values(total), ftp = values(ftp), smtp = values(smtp),
http = values(http), pop3 = values(pop3), imap = values(imap);;
DELIMITER ;