Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagesql
titleDelete 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
languagesql
titleDelete 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';