Duda Trigger evitar edicion de datos

Duda Trigger evitar edicion de datos

Hola estoy creando una pequeña base de datos para mi trabajo tengo una duda agredeceria mucho su ayuda

Tengo una tabla que tiene un campo llamado bloqueado (boolean) y quiesiera que el trigger corriera solo si el campo esta marcado como TRUE? es para evitar edicion de datos

CREATE OR REPLACE FUNCTION "Quimico Farmaceutico"."Proteger Datos"() RETURNS trigger AS
$BODY$DECLARE
bloqueado BOOLEAN;
BEGIN
IF (bloqueado=TRUE) THEN
RETURN NULL;
END IF;
END;$BODY$
LANGUAGE 'plpgsql' VOLATILE

Muchas gracias

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de rafaelma

Re: Duda Trigger evitar edicion de datos

Triggers condicionales solo existen a partir de la version 9.0 de PostgreSQL (que todavia esta en version beta). Un trigger condicional solo se activara si la condicion definida durante su creacion se cumple.

En las versiones actuales lo que puedes hacer es comprobar una determinada condicion una vez que el trigger se ha activado.

En tu caso la funcion que propones esta casi correcta. No necesitas definir una variable local 'bloqueado', usa NEW.bloqueado para operaciones INSERT y UPDATE y OLD.bloqueado para operaciones DELETE.

Tienes mas informacion sobre lo que necesitas en el articulo "Disparadores (triggers) en PostgreSQL" en la direccion http://www.postgresql-es.org/node/301

Suerte y ya contaras.
--
Rafael Martinez
PostgreSQL-es.org

Muchas Gracias

Fue mas facil de lo que pense funciona como quiero:

CREATE OR REPLACE FUNCTION "Prueba"()
RETURNS trigger AS
$BODY$DECLARE
BEGIN
IF (OLD.bloqueado=TRUE) THEN
RETURN NULL;
ELSE RETURN NEW;
END IF;
END;$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100;
ALTER FUNCTION "Prueba"() OWNER TO postgres;

Enviar nuevo comentario

  • Las direcciones de las páginas web y las de correo se convierten en enlaces automáticamente.
  • Etiquetas HTML permitidas: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd><h2><pre>
  • Saltos automáticos de líneas y de párrafos.

Más información sobre opciones de formato

Image CAPTCHA
Enter the characters shown in the image.