Remove meeting_attendees duplicates before adding new PK

Signed-off-by: Émile Ré <emile@getprobo.com>
This commit is contained in:
Émile Ré
2026-02-12 15:54:14 +04:00
parent 873930ddde
commit 0085513503

View File

@@ -157,15 +157,14 @@ SELECT
p.full_name p.full_name
FROM FROM
( (
SELECT DISTINCT ON (primary_email_address) SELECT
primary_email_address, DISTINCT ON (primary_email_address) primary_email_address,
full_name full_name
FROM FROM
peoples peoples
ORDER BY ORDER BY
primary_email_address primary_email_address
) p ) p ON CONFLICT (email_address) DO
ON CONFLICT (email_address) DO
UPDATE UPDATE
SET SET
full_name = EXCLUDED.full_name; full_name = EXCLUDED.full_name;
@@ -510,7 +509,25 @@ ALTER COLUMN
ALTER COLUMN ALTER COLUMN
attendee_profile_id attendee_profile_id
SET SET
NOT NULL, NOT NULL;
WITH duplicates AS (
SELECT
meeting_id,
attendee_profile_id,
ROW_NUMBER() OVER (PARTITION BY meeting_id, attendee_profile_id) AS rn
FROM
meeting_attendees
)
DELETE FROM
meeting_attendees ma USING duplicates d
WHERE
ma.meeting_id = d.meeting_id
AND ma.attendee_profile_id = d.attendee_profile_id
AND d.rn > 1;
ALTER TABLE
meeting_attendees
ADD ADD
PRIMARY KEY (meeting_id, attendee_profile_id); PRIMARY KEY (meeting_id, attendee_profile_id);