Skip navigation

9. példa

DEMIO adatbázis (EMP és DEPT táblák)

Ha saját gépen dolgozol, az alábbi feladathoz letöltheted a DEMO adatbázist, amely létrehozza az EMP és DEPT táblákat.

Az elnököt ne!

Írjunk triggert, amely megakadályozza az elnökre (president) vonatkozó törlő, beszúró és adatmódosító utasítások működését!

CREATE OR REPLACE TRIGGER KiveveAzElnok
BEFORE DELETE OR INSERT OR UPDATE
ON emp
FOR EACH ROW
WHEN (UPPER(OLD.job) = 'PRESIDENT' ORUPPER(NEW.job) = 'PRESIDENT')
BEGIN
      IF DELETING THEN
            RAISE_APPLICATION_ERROR(-20001, 'Az elnokot nem lehet torolni!');
      ELSIF INSERTING THEN
            RAISE_APPLICATION_ERROR(-20002, 'Elnokot nem lehet beszurni!');
      ELSIF UPDATING THEN
             RAISE_APPLICATION_ERROR(-20003, 'Elnok adatok nem modosithatok!');
      END IF;
END;

Próbáljunk meg beszúrni, firissíteni és törölni elnököt!

INSERT INTO emp VALUES (5678, 'kiss', 'president', NULL, SYSDATE, 6000, NULL, 10);

UPDATE emp SET sal = sal - 555 WHERE deptno = 10;

DELETE FROM emp WHERE deptno = 10;