Variável que contém o número de linhas afetadas por DELETE anterior? (em uma função)
Eu tenho uma função que é usada como um gatilho INSERT. Esta função exclui linhas que entrariam em conflito com [o número de série] da linha que está sendo inserida. Funciona lindamente, então eu realmente prefiro não debater os méritos do conceito.
DECLARE
re1 feeds_item.shareurl%TYPE;
BEGIN
SELECT regexp_replace(NEW.shareurl, '/[^/]+(-[0-9]+\.html)Gostaria de adicionar ao AVISO uma indicação de quantas linhas são afetadas (aka: excluídas). Como posso fazer isso (usando LANGUAGE 'plpgsql')?
ATUALIZAR: Com base em algumas orientações excelentes de "Frango na cozinha", mudei para este:
DECLARE
re1 feeds_item.shareurl%TYPE;
num_rows int;
BEGIN
SELECT regexp_replace(NEW.shareurl, '/[^/]+(-[0-9]+\.html),'/[^/]+\\1') INTO re1;
RAISE NOTICE 'DELETEing rows from feeds_item where shareurl ~ ''%''', re1;
DELETE FROM feeds_item where shareurl ~ re1;
RETURN NEW;
END;
Gostaria de adicionar ao AVISO uma indicação de quantas linhas são afetadas (aka: excluídas). Como posso fazer isso (usando LANGUAGE 'plpgsql')?
ATUALIZAR: Com base em algumas orientações excelentes de "Frango na cozinha", mudei para este:
DECLARE
re1 feeds_item.shareurl%TYPE;
num_rows int;
BEGIN
SELECT regexp_replace(NEW.shareurl, '/[^/]+(-[0-9]+\.html)$','/[^/]+\\1') INTO re1;
DELETE FROM feeds_item where shareurl ~ re1;
IF FOUND THEN
GET DIAGNOSTICS num_rows = ROW_COUNT;
RAISE NOTICE 'DELETEd % row(s) from feeds_item where shareurl ~ ''%''', num_rows, re1;
END IF;
RETURN NEW;
END;
,'/[^/]+\\1') INTO re1;
DELETE FROM feeds_item where shareurl ~ re1;
IF FOUND THEN
GET DIAGNOSTICS num_rows = ROW_COUNT;
RAISE NOTICE 'DELETEd % row(s) from feeds_item where shareurl ~ ''%''', num_rows, re1;
END IF;
RETURN NEW;
END;
,'/[^/]+\\1') INTO re1;
RAISE NOTICE 'DELETEing rows from feeds_item where shareurl ~ ''%''', re1;
DELETE FROM feeds_item where shareurl ~ re1;
RETURN NEW;
END;
Gostaria de adicionar ao AVISO uma indicação de quantas linhas são afetadas (aka: excluídas). Como posso fazer isso (usando LANGUAGE 'plpgsql')?
ATUALIZAR: Com base em algumas orientações excelentes de "Frango na cozinha", mudei para este:
DECLARE
re1 feeds_item.shareurl%TYPE;
num_rows int;
BEGIN
SELECT regexp_replace(NEW.shareurl, '/[^/]+(-[0-9]+\.html)$','/[^/]+\\1') INTO re1;
DELETE FROM feeds_item where shareurl ~ re1;
IF FOUND THEN
GET DIAGNOSTICS num_rows = ROW_COUNT;
RAISE NOTICE 'DELETEd % row(s) from feeds_item where shareurl ~ ''%''', num_rows, re1;
END IF;
RETURN NEW;
END;