guild_eventlog 公会事件日志表
基于 AzerothCore 官方数据库 · Characters 库 · 记录公会成员变动等事件
表概述
guild_eventlog 表记录公会的管理事件,包括加入/离开公会、职务升降、公会公告修改等。
核心概念:与 guild_bank_eventlog(银行操作日志)不同,此表记录公会的成员管理事件。
表结构
| 字段名 | 数据类型 | 默认值 | 说明 |
|---|---|---|---|
| guildid | INT UNSIGNED | NOT NULL | 公会ID → guild.guildid |
| LogGuid | INT UNSIGNED | NOT NULL | 日志记录ID |
| EventType | TINYINT UNSIGNED | NOT NULL | 事件类型 |
| PlayerGuid1 | INT UNSIGNED | NOT NULL | 玩家1 GUID(操作者) |
| PlayerGuid2 | INT UNSIGNED | NOT NULL | 玩家2 GUID(被操作者) |
| NewRank | TINYINT UNSIGNED | NOT NULL | 新公会等级(升降时使用) |
| TimeStamp | INT UNSIGNED | NOT NULL | 事件时间(Unix时间戳) |
重要字段详解
EventType - 事件类型
详细说明:标识公会事件类型。常见类型
- 1:邀请成员
- 2:加入公会
- 3:晋升
- 4:降级
- 5:离开公会(主动退出)
- 6:被踢出公会
PlayerGuid1 / PlayerGuid2
详细说明:双玩家字段记录操作和被操作者。
- PlayerGuid1 = 执行操作的人(如邀请者)
- PlayerGuid2 = 被操作的人(如被邀请者)
- 单人事件(如自行加入):PlayerGuid2 可能为0
SQL示例:查看公会事件日志 →
SELECT * FROM guild_eventlog WHERE guildid=1 ORDER BY TimeStamp DESC LIMIT 50;SQL查询示例
-- 查看最近50条公会事件
SELECT EventType, PlayerGuid1, PlayerGuid2, NewRank,
FROM_UNIXTIME(TimeStamp) AS event_time
FROM guild_eventlog
WHERE guildid = 1
ORDER BY TimeStamp DESC
LIMIT 50;-- 统计今日加入和退出的成员数
SELECT CASE EventType
WHEN 2 THEN '加入'
WHEN 5 THEN '退出'
WHEN 6 THEN '被踢'
END AS action,
COUNT(*) AS count
FROM guild_eventlog
WHERE guildid = 1 AND DATE(FROM_UNIXTIME(TimeStamp)) = CURDATE()
GROUP BY EventType;常见问题
Q: 如何查看谁提升了某成员?
SELECT PlayerGuid1, NewRank FROM guild_eventlog WHERE guildid=1 AND PlayerGuid2=目标GUID AND EventType IN (3,4) ORDER BY TimeStamp DESC;
Q: 日志记录会被定期清理吗?
通常有数量限制(如最近100-200条)。服务器配置中可调整日志保留数量和策略。