Ayuda en trigger
Publicado por christian (13 intervenciones) el 03/07/2007 20:27:26
hola wey tengo un problema con un trigger quiero actualizar una misma tabla pero me bota error que puedo hacer ..
estas son mi tablas:
CREATE TABLE CABECERAFACTURA(
NUMERO CHAR(5) CONSTRAINT CAB_NUM_PK PRIMARY KEY,
FECHA DATE,
CLIENTE CHAR(25) CONSTRAINT CAB_CLI_NN NOT NULL,
DIRECCION CHAR(25) ,
SUB_TOTAL NUMBER(6,2),
IGV NUMBER(6,2),
TOTAL NUMBER(6,2)
)
CREATE TABLE DETALLEFACTURA(
NUMERO CHAR(5),
COD_PRODUCTO CHAR(5),
PRODUCTO CHAR(25) CONSTRAINT DET_PRO_NN NOT NULL,
CANTIDAD NUMBER(4),
PRECIO_UNITARIO NUMBER(6,2),
SUB_TOTAL NUMBER(6,2),
CONSTRAINT DET_COD_PK PRIMARY KEY (NUMERO,COD_PRODUCTO)
)
este es mi trigger de actulizacion de la tabla detallefactura
CREATE OR REPLACE TRIGGER lolo
after update on detallefactura
FOR EACH ROW
BEGIN
UPDATE detallefactura SET sub_total = cantidad * precio_unitario;
END;
la consulta que hago es :
update detallefactura set cantidad=8
y sale este error:
ORA-04091: la tabla FACTURACION.DETALLEFACTURA está mutando, puede que el disparador/la función no puedan verla
ORA-06512: en “FACTURACION.LOLO”, línea 2
ORA-04088: error durante la ejecución del disparador ‘FACTURACION.LOLO’
necesitari aun ayuddita bueno graxias
estas son mi tablas:
CREATE TABLE CABECERAFACTURA(
NUMERO CHAR(5) CONSTRAINT CAB_NUM_PK PRIMARY KEY,
FECHA DATE,
CLIENTE CHAR(25) CONSTRAINT CAB_CLI_NN NOT NULL,
DIRECCION CHAR(25) ,
SUB_TOTAL NUMBER(6,2),
IGV NUMBER(6,2),
TOTAL NUMBER(6,2)
)
CREATE TABLE DETALLEFACTURA(
NUMERO CHAR(5),
COD_PRODUCTO CHAR(5),
PRODUCTO CHAR(25) CONSTRAINT DET_PRO_NN NOT NULL,
CANTIDAD NUMBER(4),
PRECIO_UNITARIO NUMBER(6,2),
SUB_TOTAL NUMBER(6,2),
CONSTRAINT DET_COD_PK PRIMARY KEY (NUMERO,COD_PRODUCTO)
)
este es mi trigger de actulizacion de la tabla detallefactura
CREATE OR REPLACE TRIGGER lolo
after update on detallefactura
FOR EACH ROW
BEGIN
UPDATE detallefactura SET sub_total = cantidad * precio_unitario;
END;
la consulta que hago es :
update detallefactura set cantidad=8
y sale este error:
ORA-04091: la tabla FACTURACION.DETALLEFACTURA está mutando, puede que el disparador/la función no puedan verla
ORA-06512: en “FACTURACION.LOLO”, línea 2
ORA-04088: error durante la ejecución del disparador ‘FACTURACION.LOLO’
necesitari aun ayuddita bueno graxias
Valora esta pregunta


0