28 lines
854 B
SQL
28 lines
854 B
SQL
-- 为 T_Likes 表添加唯一索引
|
|
-- 防止同一用户对同一目标重复点赞
|
|
|
|
-- 检查索引是否已存在,如果不存在则创建
|
|
IF NOT EXISTS (
|
|
SELECT 1
|
|
FROM sys.indexes
|
|
WHERE name = 'IX_T_Likes_User_Target'
|
|
AND object_id = OBJECT_ID('T_Likes')
|
|
)
|
|
BEGIN
|
|
CREATE UNIQUE NONCLUSTERED INDEX IX_T_Likes_User_Target
|
|
ON T_Likes(UserId, TargetType, TargetId);
|
|
|
|
PRINT '索引 IX_T_Likes_User_Target 创建成功';
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
PRINT '索引 IX_T_Likes_User_Target 已存在,跳过创建';
|
|
END
|
|
|
|
-- 说明:
|
|
-- 1. 此索引确保同一用户不能对同一目标(帖子或评论)重复点赞
|
|
-- 2. 唯一索引会在数据库层面防止并发导致的重复数据
|
|
-- 3. 执行此脚本前请备份数据库
|
|
-- 4. 如果表中已有重复数据,创建索引会失败,需要先清理重复数据
|
|
|