FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
onupdate cascade con triger
Hola a tod@s, os comento un problemilla a ver si alguien ducho en sql (firebird 1.5) se le ocurre la solucion o me indica si es que hago algo mal gracias por adelantado y al grano.
os muestro en 1er lugar el codigo de un triger CREATE OR ALTER TRIGGER TR_COMPLETA_RANGOS FOR GPACEDADES ACTIVE AFTER INSERT OR UPDATE POSITION 0 AS declare variable cod Integer; begin FOR select ncaracteristica FROM caracteristicas WHERE ncaracteristica not in (select ncaracteristica from VALXCARAC where NGRUPACIENTE = NEW.NGRUPACIENTE AND FROM_EDAD = NEW.FROM_EDAD ) INTO :cod DO BEGIN insert into VALXCARAC (nGRUPACIENTE,FROM_EDAD, ncaracteristica, VMAX, VMIN, ALERTA) values (NEW.NGRUPACIENTE, NEW.FROM_EDAD, :cod, 0, 0, '1'); END end por otro lado al modificar el campo From_Edad el cambio se propaga a la tabla valxcarac (como debe ser) el objetivo es que el triger inserte un registro por caracteristica para un determinado rango de edad y de hecho lo hace el problema esta cuando actrualizo el campo from_edad al parecer el for select recupera tantos registros como caracteristicas haya, supongo que los cambios todavia no se han propagado (no lo se soy novato en esto de sql) el hecho es que las dos cosas (el update cascade y el triger) funcionan por separado pero las modificaciones fallan si activo el triger (Database Server Error: violation of PRIMARY or UNIQUE KEY constraint "PK_VALXCARAC" on table "VALXCARAC") no se si en el for select usar old.from_edad en lugar de new.from_edad la verdad no me parece fiable aunque funcionase gracias de nuevo. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Modo Cascade | CoCaInE | OOP | 2 | 05-09-2006 17:06:13 |
On Delete Cascade ¿? | marceloalegre | SQL | 3 | 30-05-2005 17:08:18 |
|