13_Trigger

Code-Dateien

DateinameAktion
CODECode_Trigger.zipDownload

PDF-Dokumente

DateinameAktion
PDFFolie_Trigger.pdfÖffnen
PDFUebung_001.pdfÖffnen

Videos

DateinameAktion
VIDEOVideo_Trigger_DAbspielen
VIDEOVideo_Trigger_EAbspielen

Lernmaterialien

Trigger

ACCOUNT

ACCOUNT_ID FIRST_NAME BALANCE CREDIT_LIMIT
3001 Anna 1250.00 -500.00
3002 Lukas 80.50 -200.00
3003 Sofia 5600.00 -1500.00
3004 David 15.75 -100.00
3005 Mila 980.00 -300.00
CREATE OR REPLACE TRIGGER TRG_GRIESMAYER_ACCOUNTS
BEFORE INSERT or UPDATE on ACCOUNT
FOR EACH ROW
BEGIN
  IF (:new.BALANCE < :new.CREDIT_LIMIT) THEN
    raise_application_error (-20999, 'The balance ' || :new.BALANCE || ' is under the credit limit' || :new.CREDIT_LIMIT || '!');
  END IF;
END;
INSERT INTO ACCOUNT VALUES (3006, 'Max', -4000, -2000);

Does not work.

  IF (INSERTING) THEN
    SELECT SEQ_ACCOUNT_ID.nextval INTO :new.ACCOUNT_ID
    FROM   DUAL;

    IF ((:new.CREDIT_LIMIT is NULL) or (:new.CREDIT_LIMIT > 0)) THEN
      SELECT -1000 INTO :new.CREDIT_LIMIT
      FROM   DUAL;
    END IF;
  END IF;