-- 修改 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 $$;