...
Code Block |
---|
language | sql |
---|
title | 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:
Code Block |
---|
language | sql |
---|
title | 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'; |