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
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... |