74 lines
1.9 KiB
SQL
74 lines
1.9 KiB
SQL
-- 验证重复消息修复效果的SQL脚本
|
|
|
|
-- 1. 查看最新的消息记录(修复后应该只有一条用户消息)
|
|
SELECT
|
|
id,
|
|
conversation_id,
|
|
content,
|
|
sender,
|
|
user_id,
|
|
user_type,
|
|
coze_role,
|
|
create_by,
|
|
create_time,
|
|
update_time
|
|
FROM message
|
|
WHERE create_time > '2025-07-25 16:15:00' -- 修复后的时间
|
|
ORDER BY create_time DESC
|
|
LIMIT 20;
|
|
|
|
-- 2. 检查是否还有重复的用户消息(修复后应该返回0条记录)
|
|
SELECT
|
|
content,
|
|
conversation_id,
|
|
sender,
|
|
COUNT(*) as duplicate_count,
|
|
GROUP_CONCAT(id) as message_ids,
|
|
MIN(create_time) as first_time,
|
|
MAX(create_time) as last_time
|
|
FROM message
|
|
WHERE sender = 'user'
|
|
AND create_time > '2025-07-25 16:15:00' -- 修复后的时间
|
|
GROUP BY content, conversation_id, sender
|
|
HAVING COUNT(*) > 1;
|
|
|
|
-- 3. 查看特定会话的消息流(验证消息顺序正常)
|
|
-- 请将 'YOUR_CONVERSATION_ID' 替换为实际的会话ID
|
|
SELECT
|
|
id,
|
|
content,
|
|
sender,
|
|
user_id,
|
|
user_type,
|
|
create_time,
|
|
CASE
|
|
WHEN user_id IS NOT NULL AND user_type IS NOT NULL THEN 'WebSocket保存'
|
|
WHEN user_id IS NULL AND create_by != 'system' THEN 'REST API保存'
|
|
ELSE '其他方式保存'
|
|
END as save_method
|
|
FROM message
|
|
WHERE conversation_id = 'YOUR_CONVERSATION_ID'
|
|
ORDER BY create_time ASC;
|
|
|
|
-- 4. 统计修复前后的消息数量对比
|
|
SELECT
|
|
DATE(create_time) as date,
|
|
sender,
|
|
COUNT(*) as message_count
|
|
FROM message
|
|
WHERE create_time >= '2025-07-25 00:00:00'
|
|
GROUP BY DATE(create_time), sender
|
|
ORDER BY date DESC, sender;
|
|
|
|
-- 5. 查找可能的重复消息模式
|
|
SELECT
|
|
content,
|
|
sender,
|
|
COUNT(*) as count,
|
|
GROUP_CONCAT(DISTINCT user_id) as user_ids,
|
|
GROUP_CONCAT(DISTINCT create_by) as create_bys
|
|
FROM message
|
|
WHERE create_time > '2025-07-25 16:00:00'
|
|
GROUP BY content, sender
|
|
HAVING COUNT(*) > 1;
|