Script to delete duplicated mapping rules by record type:
Delete duplicated mapping rules
DELETE FROM diku_mod_source_record_manager.mapping_rules a USING diku_mod_source_record_manager.mapping_rules b WHERE a.id < b.id AND a.record_type = b.record_type RETURNING a.id, a.record_type;
Alternative approach with function:
Delete duplicated from mapping rules
CREATE OR REPLACE FUNCTION delete_mapping_rules_duplicates(university text) RETURNS TABLE(id uuid, record_type text) AS $$ DECLARE module_name text := university || '_mod_source_record_manager'; BEGIN RETURN QUERY EXECUTE format('DELETE FROM %s.mapping_rules a USING %s.mapping_rules b WHERE a.id < b.id AND a.record_type = b.record_type RETURNING a.id, a.record_type::text;', module_name, module_name); END; $$ LANGUAGE 'plpgsql';