Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

Ayuda con trigger

Estas en el tema de Ayuda con trigger en el foro de Oracle en Foros del Web. Tengo la tabla tarjeta: create table Tarjeta ( nroTarjeta number(10) PRIMARY KEY, fechaHabilitacion date() , ciPropietario number(8) references Usuario(ci), cantidadBoletosSimples number(8), cantidadBoletosDobles number(8), saldo number(4.2) ...
  #1 (permalink)  
Antiguo 06/10/2009, 23:33
 
Fecha de Ingreso: octubre-2009
Mensajes: 1
Antigüedad: 15 años, 2 meses
Puntos: 0
Ayuda con trigger

Tengo la tabla tarjeta:

create table Tarjeta (

nroTarjeta number(10) PRIMARY KEY,
fechaHabilitacion date() ,
ciPropietario number(8) references Usuario(ci),
cantidadBoletosSimples number(8),
cantidadBoletosDobles number(8),
saldo number(4.2)

);


Lo que tengo que hacer es chequear que si se ingresa una tarjeta que no tiene asignado ciPropietario, la cantidadBoletosSimples y cantidadBoletosDobles tiene que ser 0 , y la fechaHabilitacion debe ser NULL.

Como sería el trigger xq intente de esta manera pero no me funciona. No sé como hacer para llamar a las columnas de las tupla que estoy por insertar (ejemplo : ciPropietario)

create trigger propietario_asignado
before insert or update on Tarjeta

Begin

if (ciPropietario is NULL) THEN

insert into Tarjeta values (nroTarjeta,NULL,NULL,0,0,saldo)

end if;

End;


Muchas gracias
  #2 (permalink)  
Antiguo 08/10/2009, 10:37
 
Fecha de Ingreso: septiembre-2009
Mensajes: 8
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Ayuda con trigger

prueba con :NEW.ciPropietario
ya que los trigger funcionan con new y old.
y cuando insertes tambien pone :new.nombre_campo
para que tome los nuevos valores qie estas insertando
  #3 (permalink)  
Antiguo 09/10/2009, 01:39
 
Fecha de Ingreso: junio-2007
Mensajes: 891
Antigüedad: 17 años, 6 meses
Puntos: 43
Respuesta: Ayuda con trigger

Como bien te pone albokiller, usa :new y :old, de todas maneras ese trigger no hay por donde cojerlo.

Preguntas si un valor es nulo y si es nulo insertas en la misma tabla con ese valor a null..........
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:02.