CREATE OR REPLACE TRIGGER On_WORK_Insert
AFTER INSERT ON WORK
FOR EACH ROW
DECLARE
rowcount integer(2);
BEGIN
/* Считаем доступные строки */
SELECT Count (*) INTO rowcount
FROM TRANSACTION
WHERE CustomerID IS NULL AND WorkID=:new.WorkID;
IF rowcount> 0 Then /* Строка существует, ничего не предпринимаем */
DBMS_OUTPUT.PUT_LINE ('Matching rows in the table TRANSACTION there - no action taken');
RETURN;
ELSE /* Нужно добавить новую строку */
INSERT INTO TRANSACTION (TransactionID, DATEACQUIRED, WorkID)
VALUES (TransID.NextVal, SysDate, :new.WorkID);
END IF;
END;
/