Ver Mensaje Individual
  #2 (permalink)  
Antiguo 09/03/2010, 13:08
Avatar de huesos52
huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: Echadme una mano con triggers, estoy aprendiendo

Si en la tabla transaccion lleva un primary key, por defecto es not null y es necesario incluirlo en cualquier inserciòn.

Con respecto al trigger faltan algunos detalles... como el for each row

Código SQL:
Ver original
  1. SQL> CREATE OR REPLACE TRIGGER actualizar
  2. AFTER UPDATE ON Cuenta
  3. FOR each ROW WHEN (NEW.balance <> 999)
  4. BEGIN
  5. INSERT INTO Transaccion (nro_cuenta,hora_mod, ant_balance, act_balance) VALUES(:OLD.nro_cuenta,SYSDATE, :OLD.balance, :NEW.balance);
  6. END actualizar;
  7. /  2    3    4    5    6    7  
  8.  
  9. Disparador creado.
  10.  
  11. SQL> SELECT *FROM cuenta;
  12.  
  13. NRO_CUENTA    BALANCE
  14. ---------- ----------
  15. 1254120            20
  16.  
  17. SQL> SELECT *FROM transaccion;
  18.  
  19. ninguna fila seleccionada
  20.  
  21. SQL> UPDATE cuenta SET balance=25;
  22.  
  23. 1 fila actualizada.
  24.  
  25. SQL> SELECT *FROM transaccion;
  26.  
  27. NRO_CUENTA HORA_MOD ID_CLIENTE ANT_BALANCE ACT_BALANCE
  28. ---------- -------- ---------- ----------- -----------
  29. 1254120    28/07/09                     20          25

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming