48 lines
575 B
Markdown
48 lines
575 B
Markdown
3
|
||
a)
|
||
```SQL
|
||
CREATE OR REPLACE TRIGGER InsertLagerplatz
|
||
|
||
BEFORE INSERT ON LAGER
|
||
|
||
FOR EACH ROW
|
||
|
||
DECLARE
|
||
|
||
anzahl INTEGER DEFAULT 0;
|
||
|
||
nurZweiLPs EXCEPTION;
|
||
|
||
BEGIN
|
||
|
||
if :new.anummer is NOT NULL
|
||
|
||
THEN
|
||
|
||
select count(*) into anzahl
|
||
|
||
from LAGER
|
||
|
||
where ANUMMER= :new.anummer;
|
||
|
||
IF anzahl >=2 THEN
|
||
|
||
RAISE nurZweiLPs;
|
||
|
||
END IF;
|
||
|
||
END IF;
|
||
|
||
EXCEPTION
|
||
|
||
when nurZweiLPs
|
||
|
||
THEN raise_application_error(-20500, 'Es gibt bereits zwei Lagerplaetze');
|
||
|
||
END;
|
||
```
|
||
|
||
b)
|
||
```SQL
|
||
|
||
``` |