From 33613a85afc4b1481367fbe92a17ee59c240250b Mon Sep 17 00:00:00 2001 From: Sven Eisenhauer Date: Fri, 10 Nov 2023 15:11:48 +0100 Subject: add new repo --- .../Datenbanken 2/Praktikum4/sequenz_Trigger.sql | 59 ++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 Bachelor/Datenbanken 2/Praktikum4/sequenz_Trigger.sql (limited to 'Bachelor/Datenbanken 2/Praktikum4/sequenz_Trigger.sql') diff --git a/Bachelor/Datenbanken 2/Praktikum4/sequenz_Trigger.sql b/Bachelor/Datenbanken 2/Praktikum4/sequenz_Trigger.sql new file mode 100644 index 0000000..38963db --- /dev/null +++ b/Bachelor/Datenbanken 2/Praktikum4/sequenz_Trigger.sql @@ -0,0 +1,59 @@ +-- Trigger zur Generierung eines synthetischen, sequenziellen Integer- +-- Datentyps + +--************************************************************ + +-- Der Trigger wird für die folgende Tabelle Test generiert: + +create table test +( mypk integer not null, + mycolumn varchar2(3), + primary key (mypk) +); + +--************************************************************ +-- TRIGGER-DEKLARATION +--************************************************************ + +-- trigger-kopf +create or replace trigger synthkey +before insert on test +for each row + +-- deklarationsblock +declare + vmax integer; + +-- Anweisungen +begin + +-- max wert von pk suchen +select max(mypk) into vmax +from test; + +if vmax is null +then vmax := 0; +end if; + +vmax:=vmax+1; + +-- aktuellen PK-Wert des Inserts mit vmax belegen +:new.mypk := vmax; + +end; +/ + +-- *************************************************** + + +-- entweder gibt man beim insert für die PK-Spalte mypk einen dummy ein, +-- der dann vom Trigger überschrieben wird: + +insert into test values (0,'AAA'); + +-- oder man lässt den Wert für die PK-Spalte beim insert weg: + +insert into test (mycolumn) values ('BBB'); + + + -- cgit v1.2.3