Limitar el número de registros actualizados o borrados

From: "Paulina Quezada" <paulina(dot)quezada(at)gmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Limitar el número de registros actualizados o borrados
Date: 2006-03-14 15:18:44
Message-ID: 3babf2fc0603140718p7cbca805keefd0f03a0ed69c@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola, quiero evitar que cualquier usuario haga deletes o updates masivos
sobre una tabla, estoy tratando de controlarlo por trigger, pero no sé como
obtengo desde postgress el número de filas afectadas como en sybase
@@rowocount. Intenté hacerlo mediante la sentencia GET DIAGNOSTICS variable
= ROW_COUNT; pero me devuelve siempre 0 porque esta es la primera sentencia
en la función asociada en el trigger y no existe una sentencia SQL antes.
Espero que alguien me pueda ayudar, gracias!!

CREATE OR REPLACE FUNCTION fc_insumo_de()
RETURNS "trigger" AS
$BODY$
DECLARE
my_rec record;
fila int;
BEGIN

GET DIAGNOSTICS fila = ROW_COUNT;
--IF (fila) >1 THEN
--RAISE NOTICE 'NUMERO DE FILAS AFECTADAS %',fila;
--END IF

-- No se permite actualizaciones masivas --
IF fila > 1 THEN
RAISE EXCEPTION 'No se permite actualizaciones masivas';
END IF;

RETURN OLD;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;
ALTER FUNCTION fc_insumo_de() OWNER TO postgres;

CREATE TRIGGER tr_insumo_de BEFORE DELETE ON insumo
FOR EACH STATEMENT EXECUTE PROCEDURE fc_insumo_de();

Paulina

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Rubén da Silva 2006-03-14 15:22:22 Re: gestión usuarios
Previous Message Edwin Quijada 2006-03-14 15:10:48 RE: hardware necesario para base de datos...