SQL - ayuda con trigger

 
Vista:

ayuda con trigger

Publicado por ayuda con trigger (1 intervención) el 27/05/2019 22:17:13
Chicos,favor ayuda.

Tengo tabla1 y auditoria_tabla1

necesito crear un trigger que al momento que se modifique algún campo de la tabla1, este guarde al valor antiguo en la tabla auditoria_tabla1 para tener el respaldo cual fue al valoir anterior que se modifico.

realice varias pruebas con diferente tipos de trigger que encontré por Internet pero ninguno me sirve

creé este trigger, pero solo me guarda cuando se inserta un nuevo registro en la tabla1, pero no cuando se modifica una campo en la tabla1

CREATE TRIGGER auditoria_tabla1
BEFORE INSERT ON tabla1
FOR EACH ROW
INSERT INTO auditoria_tabla1(id,codigo,almacenable,cantidad,descripcion,marca,unidad_medida,rubro_id,tipoproducto_id,user_registra,fecha_registra)
VALUES (id,NEW.codigo,NEW.almacenable,NEW.cantidad,NEW.descripcion,NEW.marca,NEW.unidad_medida,NEW.rubro_id,NEW.tipoproducto_id,NEW.user_registra,NEW.fecha_registra);

Favor alguien que me pueda ayudar
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de gilman
Val: 184
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

ayuda con trigger

Publicado por gilman (103 intervenciones) el 28/05/2019 08:26:01
El trigger debería ser BEFORE INSERT OR UPDATE ON tabla1
Si estás trabajando con Oracle, además NEW debería ir precedido por
1
:
, y el Id de la parte VALUES debería ir precedido por :NEW., y la sentencia quedaría:

1
2
INSERT INTO auditoria_tabla1(id,codigo,almacenable,cantidad,descripcion,marca,unidad_medida,rubro_id,tipoproducto_id,user_registra,fecha_registra)
VALUES (:NEW.id,:NEW.codigo,:NEW.almacenable,:NEW.cantidad,:NEW.descripcion,:NEW.marca,:NEW.unidad_medida,:NEW.rubro_id,:NEW.tipoproducto_id,:NEW.user_registra,:NEW.fecha_registra);
Aunque esto sea, posiblemente un error de corta y pega
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar