Bases de Datos - Problema con trigger

 
Vista:

Problema con trigger

Publicado por sergio barrientos (2 intervenciones) el 21/02/2015 21:43:16
Saludos¡¡¡

Tengo que hacer un trigger de control de sueldos. Se definen categorías de sueldos y el trigger controla que el empleado pertenezca a la categoría según el sueldo que se ingresa. El hecho es que lo hize pero no controla nada, se puede introducir cualquier sueldo en cualquier categoría. El código en DB2 del trigger que hize es

CREATE OR REPLACE TRIGGER SUELDOS_CONTROL

NO CASCADE BEFORE UPDATE OF SUELDO ON SERGIO23.EMPLEADOS REFERENCING NEW AS n FOR EACH ROW MODE DB2SQL NOT SECURED

when( n.SUELDO < (SELECT SUELDOMINIMO FROM CATEGORIAS WHERE

n.IDCATEGORIA = categorias.IDCATEGORIA ) OR n.SUELDO > (SELECT

SUELDOMAXIMO FROM CATEGORIAS WHERE n.IDCATEGORIA =

categorias.IDCATEGORIA) )

SIGNAL SQLSTATE '75000' ('no puede pertenecer a dicha categoria.')

-----------------------------------

Las tablas son EMPLEADOS(idempleado, empleado, idcategoria, sueldo) y CATEGORIAS(idcategoria, sueldominimo,sueldomaximo,categoria)

Desde ya les agradecería su invalorable ayuda.

Saludos.
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

Problema con trigger

Publicado por Leopoldo Taylhardat (187 intervenciones) el 23/02/2015 13:51:50
Saludos...
no se la sintaxis específica para db2 pero la estructura debe ser algo así...

CREATE OR REPLACE TRIGGER SUELDOS_CONTROL

NO CASCADE BEFORE UPDATE OF SUELDO ON SERGIO23.EMPLEADOS REFERENCING NEW AS n FOR EACH ROW MODE DB2SQL NOT SECURED
--declarar variable categ si es entero como ejemplo...
declare categ integer;;
select IDCATEGORIA from categorias into categ where (n.SUELDO between SUELDOMINIMO AND SUELDOMAXIMO);
set n.categorias = categ;
...
y voilá
...
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

Problema con trigger

Publicado por Sergio Barrientos (2 intervenciones) el 23/02/2015 15:49:09
Muchas gracias por la ayuda¡¡¡¡¡


Lo estare probando y vere como resulta.

Saludos¡¡¡
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