Trigger en oracle

Soy novato en esto de los trigger y tengo el siguiente. Probl: tengo una bd con un aplicativo desde visualfox y quisiera que cada vez que borren o modifiquen registros de un tabla1, estos se guarden en otra "tabla2" (igual en estructura que tabla1) me dicen que lo haga con trigger, estoy leyendo acerca de esto pero quisiera un ejemplo.

1 respuesta

Respuesta
1
Te voy a mostrar un ejemplo:
CREATE OR REPLACE TRIGGER nombre_del_trigger
BEFORE DELETE OR UPDATE ON tabla1
REFERENCING NEW AS NEW OLD AS OLD FOR EACH ROW
BEGIN
INSERT INTO tabla2(campos) VALUES(:OLD.campo1, :OLD.campo2...);
EXCEPTION
WHEN DUP_VAL_ON_INDEX THEN
UPDATE tabla2 SET campo1=:OLD.campo1, campo2=:OLD.campo2... WHERE campo_clave1_tabla2=:OLD.campo_clave1_tabla1 and campo_clave2_tabla2=:OLD.campo_clave2_tabla1...
END;
:OLD. Columna es el viejo valor de la columna al hacer el update y :NEW. Columna es el nuevo. El trigger se ejecuta antes de hacer el delete o update.
Lo que esta en mayúsculas tienes que escribirlo textualmente, lo otro es lo que tienes que parametrizar con tus propios datos. Este trigger cuando haces una actualización de la primera tabla, si el registro existe en la segunda te lo actualiza con el valor antes de cambiarlo la ultima vez.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas