-- 聊天记录去重:清理存量重复 → 建 partial UNIQUE 索引支持 ON CONFLICT -- 1) 删除重复记录(保留每个 message_id 最早的那条) DELETE FROM chat_records a USING chat_records b WHERE a.message_id = b.message_id AND a.message_id NOT IN ('', '0') AND a.id > b.id; -- 2) 替换旧普通索引为 UNIQUE partial index(排除空和占位值) DROP INDEX IF EXISTS idx_chat_records_message_id; CREATE UNIQUE INDEX idx_chat_records_message_id ON chat_records (message_id) WHERE message_id NOT IN ('', '0');