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

trigger con condicion mayor y menor

Estas en el tema de trigger con condicion mayor y menor en el foro de Oracle en Foros del Web. me urge crear un trigger que no permita insertar valores en cierta columna de una tabla menores a 15 ni mayores a 20 la columna ...
  #1 (permalink)  
Antiguo 23/06/2016, 11:57
 
Fecha de Ingreso: noviembre-2014
Ubicación: guadalajara
Mensajes: 14
Antigüedad: 10 años
Puntos: 0
trigger con condicion mayor y menor

me urge crear un trigger que no permita insertar valores en cierta columna de una tabla menores a 15 ni mayores a 20
la columna es precioventa y la tabla es productos

si se crea el trigger,
pero al realizar una insercion si admite cualquier numero ya sea mayor a 20 o menor a 15 y lo que quiero es que no realize la insercion


Código SQL:
Ver original
  1. CREATE OR REPLACE TRIGGER ActProducto
  2.  BEFORE INSERT OR UPDATE OF precioventa ON productos
  3.  FOR each ROW WHEN(NEW.precioventa <20 AND NEW.precioventa >15)
  4.  BEGIN
  5.   :NEW.precioventa := (:NEW.precioventa);
  6.  END ActProducto;
este es mi codigo

Última edición por gnzsoloyo; 23/06/2016 a las 13:21
  #2 (permalink)  
Antiguo 23/06/2016, 13:26
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: trigger con condicion mayor y menor

¿Y por qué no usas simplemente una CONSTRAINT CHECK?

Alg como.

Código SQL:
Ver original
  1. CREATE TABLE productos
  2. (
  3.   producto_id NUMBER(4),
  4.   nombreproducto varchar2(50),
  5.   precioventa NUMBER(20,3)
  6.   CONSTRAINT check_precioventa
  7.   CHECK (precioventa BETWEEN 10 AND 20)
  8. );

http://docs.oracle.com/cd/B19306_01/...2.htm#i1002719
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: create, mayor, menor, tabla, trigger
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 20:18.