Ejemplo de triggers

Ejemplo de triggers

Hola amigos, anticipadamente mi agradecimiento a todo el grupo que saco esta pagina, por favor ayundenme con lo siguiente:

tengo una tabla donde :
pat_pad c(20)
mat_pad c(20)
nom_pad c(20)
nombre c(60)

quisiera un trigger que actualice automaticamente el campo nombre, concatenando los 3 campos anteriores, 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: Ejemplo de triggers

Para instalar un trigger tienes que hacer dos cosas:

  1. Crear una funcion para el trigger
  2. Instalar el trigger en una/varias tablas

Podrias hacer algo asi:

CREATE OR REPLACE FUNCTION actualizar_nombre() RETURNS TRIGGER AS $trigger_ejemplo$
  BEGIN
       NEW.nombre := NEW.pat_pad || ' ' || NEW.mat_pad || ' ' || NEW.nom_pad ;
       RETURN NEW;
  END;
$trigger_ejemplo$ LANGUAGE plpgsql;

CREATE TRIGGER trigger_ejemplo
BEFORE INSERT OR UPDATE ON 'tu_tabla'
    FOR EACH ROW EXECUTE PROCEDURE actualizar_nombre();

Ya contaras.

Muchas gracias, ayudo

Muchas gracias, ayudo mucho...

trigguer

¿Dónde puedo encontrar ejemplos de triggers?

Saludos

Imagen de rafaelma

Ejemplos de triggers

En este artículo tienes mucha información sobre los disparadores en PostgreSQL y varios ejemplos:

Disparadores (triggers) en PostgreSQL

--
Un saludo
Rafael Martinez
Webmaster

Gracias

El chaval no te dio las gracias, asi que GRACIAS, me sirvio mucho.

Se un poco de triggers en mysql, pero cambia mucho para postgres.

SALUDOS y Excelentes respuestas

con una incognita

unda duda como funcionan los tigger por que no le entiendo bn para que hacer un funcion y donde se crea, se que c hace dentro de la base de datos pero donde la mandamos ha llamar.

uso de parametros

buen dia, si en un caso tubiera una funcion que utiliza parametros y estos los esperara del triggers como los definiria?

CREATE OR REPLACE FUNCTION recur(integer, integer)

create trigger update_cc_t
AFTER INSERT
ON
cc_detalle FOR EACH ROW
EXECUTE PROCEDURE update_cc(NEW.CODIGO_EMPRESA, NEW.DATO1);

Que intentado con esta logica pero no me acepta el NEW.

Si alguien me pudiera indicar mi error se los agradecere mucho.

uso de parametros

Las funciones definidas para ser usadas como triggers no tienen que llevar parametros, lee este articulo: ARTICULO

Nota: estoy aprendiendo...

Saludos.

uso de parametros

Estimado, en la página de postgres dice que se puede (al menos es lo que yo entiendo).
:-)

Saludos.

Fuente:
http://developer.postgresql.org/pgdocs/postgres/sql-createtrigger.html

SALUDOS

Es tarde pero quizas pueda ayudar a alguien más que estaba buscando esto.
Las funciones del TRIGGER o DISPARADOR no pueden tener ARGUMENTOS.
Este mensaje lo envía en mismo manejador al tratar de crear el TRIGGER.

ERROR: las funciones de disparador no pueden tener argumentos declarados
HINT: Los argumentos del disparador pueden accederse usando TG_NARGS y TG_ARGV.