表概述

guild_eventlog 表记录公会的管理事件,包括加入/离开公会、职务升降、公会公告修改等。

核心概念:与 guild_bank_eventlog(银行操作日志)不同,此表记录公会的成员管理事件。

表结构

字段名数据类型默认值说明
guildidINT UNSIGNEDNOT NULL公会ID → guild.guildid
LogGuidINT UNSIGNEDNOT NULL日志记录ID
EventTypeTINYINT UNSIGNEDNOT NULL事件类型
PlayerGuid1INT UNSIGNEDNOT NULL玩家1 GUID(操作者)
PlayerGuid2INT UNSIGNEDNOT NULL玩家2 GUID(被操作者)
NewRankTINYINT UNSIGNEDNOT NULL新公会等级(升降时使用)
TimeStampINT UNSIGNEDNOT 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条)。服务器配置中可调整日志保留数量和策略。