26 lines
878 B
SQL
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 $$; |