Buenas

Lo primero es que la llamada a la funcion en el Trigger no necesita
parametros, en este caso, luego es que debes poner explicitamente  la
sentencia INSERT INTO TABLA (campo1,campo2) VALUES (NEW.campo1, New.campo2)

Debes tener presente que las variables de NEW.XXXX son los valores de la
tabla que dispara la funcion...

Saludos..

2015-04-09 17:21 GMT-04:00 MARIA ANTONIETA RAMIREZ SOLIS <
marami...@ulsaneza.edu.mx>:

> Buena tarde
> Por medio del presente les pido apoyo, ya que tengo un problema, tengo dos
> tablas:
> esquema_pago y esquema_pago_backup , en mysql tengo un trigger que cuando
> se insertan datos en  la tabla esquema_pago, se insertan tambien en esquema
> pago backup, migre la base y estoy tratando de poner lo mismo en postgres ,
> ya cree una funcion y el trigger pero no me copia los datos a la tabla de
> esquema_pago_backup, espero que me puedan hechar la mano, soy nueva en
> postgres.
>
> Por su atencion Gracias:
>
> *----tabla esquema_pago---*
> CREATE TABLE educaciondistancia.*esquema_pago*
> (
>   id serial NOT NULL,
>   curso integer NOT NULL,
>   numpago integer NOT NULL,
>   montopagar numeric(8,2) NOT NULL,
>   estatus integer, -- 1 - vigente, 2 - no vigente
>   usuario character varying(15) NOT NULL,
>   fecha timestamp without time zone,
>   CONSTRAINT esquema_pago_primary PRIMARY KEY (id),
>   CONSTRAINT fk_esquema_curso FOREIGN KEY (curso)
>       REFERENCES educaciondistancia.cursos (id) MATCH SIMPLE
>       ON UPDATE CASCADE ON DELETE CASCADE,
>   CONSTRAINT fk_esquema_usuario FOREIGN KEY (usuario)
>       REFERENCES educaciondistancia.usuariosadmin (usuario) MATCH SIMPLE
>       ON UPDATE CASCADE ON DELETE CASCADE
> )
> WITH (
>   OIDS=FALSE
> );
> ALTER TABLE educaciondistancia.esquema_pago
>   OWNER TO postgres;
> COMMENT ON COLUMN educaciondistancia.esquema_pago.estatus IS '1 - vigente,
> 2 - no vigente';
>
> *--tabla esquema_pago_backup--*
>
> CREATE TABLE educaciondistancia.esquema_pago_backup
> (
>   id serial NOT NULL,
>   curso integer NOT NULL,
>   numpago integer NOT NULL,
>   montopagar numeric(8,2) NOT NULL,
>   estatus integer,
>   usuario character varying(15) NOT NULL,
>   fecha timestamp without time zone,
>   CONSTRAINT pk_esquema_pago_backup PRIMARY KEY (id),
>   CONSTRAINT fk_backup_curso FOREIGN KEY (curso)
>       REFERENCES educaciondistancia.cursos (id) MATCH SIMPLE
>       ON UPDATE CASCADE ON DELETE CASCADE,
>   CONSTRAINT fk_backup_usuario FOREIGN KEY (usuario)
>       REFERENCES educaciondistancia.usuariosadmin (usuario) MATCH SIMPLE
>       ON UPDATE CASCADE ON DELETE CASCADE
> )
> WITH (
>   OIDS=FALSE
> );
> ALTER TABLE educaciondistancia.esquema_pago_backup
>   OWNER TO postgres;
>
>
> *--trigger--*
>
> CREATE TRIGGER trg_inserta_esquema_pago_backup
>   AFTER INSERT
>   ON educaciondistancia.esquema_pago
>   FOR EACH ROW
>   EXECUTE PROCEDURE
> educaciondistancia.inserta_esquema_pago_backup('curso', 'numpago',
> 'montopagar', 'estatus', 'usuario', 'fecha');
>
>
> *--funcion trigger--*
>
> CREATE OR REPLACE FUNCTION educaciondistancia.inserta_esquema_pago_backup()
>   RETURNS trigger AS
> $BODY$
> BEGIN
> NEW.curso := NEW.curso;
> NEW.numPago := NEW.numPago;
> NEW.montoPagar := NEW.montoPagar;
> NEW.estatus := NEW.estatus;
> NEW.usuario := NEW.usuario;
> NEW.fecha := NEW.fecha;
>
> RETURN NEW;
> END
> $BODY$
>   LANGUAGE plpgsql VOLATILE
>   COST 100;
> ALTER FUNCTION educaciondistancia.inserta_esquema_pago_backup()
>   OWNER TO postgres;
>
>
>
>
>


-- 
*Ing. Eduardo Reyes*
Analista Programador.
(809) 607-1961
ere...@h-rivera.com

Responder a