Мне нужно вставить значения NRO_BOLETA, MONTO_BOLETA * 0,15 (VALOR_COMISION в таблице COMISION_VENTA) в таблицу COMISION_VENTA, когда в базу данных вставляется новая BOLETA
БОЛЕТА стол:
CREATE TABLE BOLETA
(
nro_boleta NUMBER(10) CONSTRAINT PK_BOLETA PRIMARY KEY,
fecha_boleta DATE NOT NULL,
monto_boleta NUMBER(15) NOT NULL,
id_cliente NUMBER(10) NOT NULL,
numrut_emp NUMBER(10) NOT NULL,
CONSTRAINT FK_FACTURA_VENDEDOR
FOREIGN KEY(numrut_emp) REFERENCES empleado(numrut_emp)
);
Таблица COMISION_VENTA:
CREATE TABLE COMISION_VENTA
(
nro_boleta NUMBER(10) NOT NULL CONSTRAINT PK_COMISION_VENTA PRIMARY KEY ,
valor_comision NUMBER(10) NOT NULL,
CONSTRAINT FK_COMISION_VENTA_BOLETA
FOREIGN KEY(nro_boleta) REFERENCES BOLETA(nro_boleta)
);
Trigger:
CREATE OR REPLACE TRIGGER asignacion
BEFORE INSERT OR DELETE OR UPDATE ON BOLETA
FOR EACH ROW
BEGIN
IF INSERTING THEN
INSERT INTO COMISION_VENTA(NRO_BOLETA, VALOR_COMISION)
VALUES(:NEW.NRO_BOLETA, ROUND(:NEW.MONTO_BOLETA*0,15));
END IF;
END;
Вставка и ошибка:
INSERT INTO BOLETA(NRO_BOLETA, FECHA_BOLETA, MONTO_BOLETA, ID_CLIENTE, NUMRUT_EMP)
VALUES (28, '26/06/18', 258999, 3000, 12456905)
Информационная ошибка
ORA-02291: ограничение целостности (ADMIN_ENS.FK_COMISION_VENTA_BOLETA) нарушено - родительский ключ не найден
ORA-06512: по адресу "ADMIN_ENS.ASIGNACION", строка 3
ORA-04088: ошибка во время выполнения триггера 'ADMIN_ENS.ASIGNACION'