guild_bank_eventlog 公会银行事件日志表
基于 AzerothCore 官方数据库 · Characters 库 · 记录公会银行的存取操作日志
表概述
guild_bank_eventlog 表记录公会银行的所有操作日志,包括存款、取款、移动物品等。用于审计和追溯。
核心概念:每次公会银行的物品存取操作都会生成一条日志记录,包含操作者、物品、时间、目标标签页等信息。
表结构
| 字段名 | 数据类型 | 默认值 | 说明 |
|---|---|---|---|
| guildid | INT UNSIGNED | 0 | 公会ID → guild.guildid |
| LogGuid | INT UNSIGNED | 0 | 日志记录ID(辅助列) |
| TabId | TINYINT UNSIGNED | 0 | 操作的标签页ID |
| EventType | TINYINT UNSIGNED | 0 | 事件类型 |
| PlayerGuid | INT UNSIGNED | 0 | 操作玩家GUID |
| ItemOrMoney | INT UNSIGNED | 0 | 物品ID或金额 |
| ItemStackCount | SMALLINT UNSIGNED | 0 | 物品堆叠数量 |
| DestTabId | TINYINT UNSIGNED | 0 | 目标标签页ID(移动物品时使用) |
| TimeStamp | INT UNSIGNED | 0 | 操作时间(Unix时间戳) |
重要字段详解
EventType - 事件类型
详细说明:标识操作的类型。常见类型
- 1:存入物品
- 2:取出物品
- 3:移动物品到其他标签页
- 4:存入金币
- 5:取出金币
- 6:购买新的银行标签页
ItemOrMoney / ItemStackCount
详细说明:记录操作的具体数据。
- 物品操作时:ItemOrMoney = 物品ID,ItemStackCount = 数量
- 金币操作时:ItemOrMoney = 金币金额(铜币)
SQL示例:查看公会银行最近操作 →
SELECT * FROM guild_bank_eventlog WHERE guildid=1 ORDER BY TimeStamp DESC LIMIT 50;SQL查询示例
-- 查看某成员的所有银行操作记录
SELECT EventType, TabId, ItemOrMoney, ItemStackCount,
FROM_UNIXTIME(TimeStamp) AS event_time
FROM guild_bank_eventlog
WHERE guildid = 1 AND PlayerGuid = 角色GUID
ORDER BY TimeStamp DESC;-- 统计某标签页的存取物品总数
SELECT CASE EventType
WHEN 1 THEN '存入'
WHEN 2 THEN '取出'
END AS action,
COUNT(*) AS count
FROM guild_bank_eventlog
WHERE guildid = 1 AND TabId = 0
GROUP BY EventType;常见问题
Q: 日志会一直保留吗?
日志通常有上限(如最近100条或按时间清理)。建议定期备份或归档重要日志数据。
Q: 如何查看谁取走了某物品?
SELECT PlayerGuid, TimeStamp FROM guild_bank_eventlog WHERE guildid=1 AND ItemOrMoney=物品ID AND EventType=2 ORDER BY TimeStamp DESC;