【发布时间】:2012-10-15 11:42:05
【问题描述】:
我需要汇总各种网络之间的大量身份验证日志。
首先我跑
SELECT Home, Con, COUNT(*) AS 'ACCEPTS' FROM AUTHLOG WHERE response='ACCEPT';
这给了我总结:
+------+------+---------+
| Home | Con | ACCEPTS |
+------+------+---------+
| net1 | net1 | 37 |
| net1 | net2 | 2 |
| net1 | net3 | 578 |
| net2 | net1 | 56 |
| net2 | net2 | 95621 |
| net2 | net3 | 465 |
| net3 | net1 | 91 |
| net3 | net2 | 83 |
| net3 | net3 | 891 |
+------+------+---------+
我需要开始将这些结果存储在一个单独的表中,累积总 ACCEPTS(因为 AUTHLOG 表被截断)。
单独的汇总表很简单:
CREATE TABLE ACCEPTS_SUMMARY (
Home char(50) DEFAULT NULL,
Con char(50) DEFAULT NULL,
Accepts INT UNSIGNED DEFAULT 0
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
有没有办法,最好在 MySQL 中(主机上没有 Python 或 Perl,但 bash 脚本可以工作),我可以获得上述计数,并将它们添加到汇总表中的现有总数中,或插入如果 Home 和 Con 组合尚不存在。
【问题讨论】:
-
您的其他表是否已创建?如果是,请发布其
CREATE代码,否则请说明。 -
Doc - 添加了用于摘要的 CREATE TABLE - not 最初没有填充任何数据。
标签: mysql insert accumulate