Trigger por sustitucion en postgresql
Publicado por Yanez (1 intervención) el 12/08/2013 21:25:55
Buenas tardes, tengo un problemita con los triggers por sustitucion (instead of) , agradezco mucho el que pueda ayudarme con este caso:
Tengo dos tablas y una vista:
tabla1: ciudad
vista: ciudad_vista
tabla2: ciudad_copia (se llena de la vista)
cuando creo un registro en tabla ciudad el automaticamente me llena la vista, pero desde la vista no me esta haciendo el insert o delete o update en la tabla
ciudad copia, (utilice la vista porque es mas sencillo asi traerme los datos y llenar la tabla ciudad copia). alli es donde entra a funcionar el instead of, agradezco mucho el que me pueda ayudar.
copio y pego el trigger y la funcion
trigger:
CREATE TRIGGER exe_trigger
INSTEAD OF INSERT
ON ciudad_vista
FOR EACH ROW
EXECUTE PROCEDURE prueba_trigger();
funcion del trigger:
CREATE OR REPLACE FUNCTION prueba_trigger()
RETURNS trigger AS
$BODY$
begin
INSERT INTO CIUDAD_COPIA VALUES(new.ciudad_id,new.sucur_id,'929,new.descrip,false,false,false,'SALRR');
RETURN OLD;
end;
$BODY$
LANGUAGE plpgsql
VOLATILE
COST 100;
ALTER FUNCTION prueba_trigger()
OWNER TO postgres;
Es un trigger con tablas sencillas, solo para escribir mi comentario mas rapido.
mi version de postgresql es 9.2
saludos y muchas gracias
Tengo dos tablas y una vista:
tabla1: ciudad
vista: ciudad_vista
tabla2: ciudad_copia (se llena de la vista)
cuando creo un registro en tabla ciudad el automaticamente me llena la vista, pero desde la vista no me esta haciendo el insert o delete o update en la tabla
ciudad copia, (utilice la vista porque es mas sencillo asi traerme los datos y llenar la tabla ciudad copia). alli es donde entra a funcionar el instead of, agradezco mucho el que me pueda ayudar.
copio y pego el trigger y la funcion
trigger:
CREATE TRIGGER exe_trigger
INSTEAD OF INSERT
ON ciudad_vista
FOR EACH ROW
EXECUTE PROCEDURE prueba_trigger();
funcion del trigger:
CREATE OR REPLACE FUNCTION prueba_trigger()
RETURNS trigger AS
$BODY$
begin
INSERT INTO CIUDAD_COPIA VALUES(new.ciudad_id,new.sucur_id,'929,new.descrip,false,false,false,'SALRR');
RETURN OLD;
end;
$BODY$
LANGUAGE plpgsql
VOLATILE
COST 100;
ALTER FUNCTION prueba_trigger()
OWNER TO postgres;
Es un trigger con tablas sencillas, solo para escribir mi comentario mas rapido.
mi version de postgresql es 9.2
saludos y muchas gracias
Valora esta pregunta


0