topfans/backend/scripts/migrate_asset_likes_exhibition_unique.sql
2026-05-22 18:06:33 +08:00

26 lines
878 B
SQL

-- 修改 asset_likes 表唯一约束(幂等)
-- 原约束: (user_id, asset_id) - 用户对某藏品只能点赞一次
-- 新约束: (user_id, asset_id, exhibition_id) - 用户对某藏品在同一展出中只能点赞一次
-- 下架后重新展出,用户可以再次点赞
-- 删除旧约束(如果存在)
DO $$
BEGIN
IF EXISTS (
SELECT 1 FROM pg_constraint
WHERE conname = 'uk_asset_likes_user_asset'
) THEN
ALTER TABLE asset_likes DROP CONSTRAINT uk_asset_likes_user_asset;
END IF;
END $$;
-- 添加新约束(如果不存在)
DO $$
BEGIN
IF NOT EXISTS (
SELECT 1 FROM pg_constraint
WHERE conname = 'uk_asset_likes_user_asset_exhibition'
) THEN
ALTER TABLE asset_likes ADD CONSTRAINT uk_asset_likes_user_asset_exhibition UNIQUE (user_id, asset_id, exhibition_id);
END IF;
END $$;