diff --git a/apps/dnet-orgs-database-application/src/main/resources/sql/importDedupEvents.sql b/apps/dnet-orgs-database-application/src/main/resources/sql/importDedupEvents.sql index 3be235ce..08ce3fef 100644 --- a/apps/dnet-orgs-database-application/src/main/resources/sql/importDedupEvents.sql +++ b/apps/dnet-orgs-database-application/src/main/resources/sql/importDedupEvents.sql @@ -14,11 +14,19 @@ UPDATE tmp_dedup_events SET local_id = oa_original_id WHERE local_id = '' OR lo UPDATE tmp_dedup_events SET oa_country = 'UNKNOWN' WHERE oa_country = '' OR oa_country IS NULL; UPDATE tmp_dedup_events SET oa_name = oa_acronym WHERE oa_name = '' OR oa_name IS NULL; DELETE FROM tmp_dedup_events WHERE oa_name = '' OR oa_name IS NULL; + +-- delete invalid relations (a raw org can not be suggested as duplicate and as new org) +DELETE FROM tmp_dedup_events WHERE oa_original_id IN ( + SELECT oa_original_id + FROM tmp_dedup_events + GROUP BY oa_original_id HAVING count(oa_original_id) > 1) +AND (local_id = '' OR local_id is NULL); + -- delete invalid relations (a raw org can not be suggested to multiple orgs) DELETE FROM tmp_dedup_events WHERE oa_original_id IN ( SELECT oa_original_id FROM tmp_dedup_events - GROUP BY oa_original_id HAVING count(*) > 1) + GROUP BY oa_original_id HAVING count(oa_original_id) > 1) AND local_id NOT LIKE 'openorgs____::%'; -- IMPORT MISSING TERMS @@ -137,14 +145,4 @@ DELETE FROM oa_duplicates d USING oa_duplicates d1 WHERE d.oa_original_id = d1.oa_original_id AND d.reltype = 'suggested' AND d1.reltype = 'is_similar'; - - - - - - - - - - COMMIT;