CREATE OR REPLACE FUNCTION slugify(input TEXT) RETURNS TEXT AS $$ BEGIN RETURN lower( regexp_replace( unaccent( regexp_replace(input, '[^\w\s-]', '', 'g') ), '\s+', '-', 'g' ) ); END; $$ LANGUAGE plpgsql IMMUTABLE;