Entwickler-Ecke

Datenbanken - Insert Trigger ?


raiha - Do 16.06.05 13:29
Titel: Insert Trigger ?
Hi,

ich möchte in meiner Firebird DB (Version 1.5) einen Trigger machen der vor dem Einfügen also (before insert) prüft ob ein solcher DS (anhand von drei Spalten in der Tab zu indentifizieren) schon vorhanden ist.
Wenn ja soll er Ihn nicht einfügen. Wenn nein dann schon.

Wie muss ich sowas machen?

Danke Rainer


raiha - Fr 17.06.05 13:04

So, habs endlich hinbekommen :-)

Für die dies interessiert hier die Lsg.


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
CREATE TRIGGER DOUBLE_TRIGGER FOR MeineTab
ACTIVE BEFORE INSERT POSITION 0
AS
DECLARE VARIABLE meineVAR INTEGER;
DECLARE VARIABLE COUNTER INTEGER;

begin
  meineVar = NEW.NR;
  
  SELECT COUNT(*) from MeineTab S
    where   S.NR = :meineVar
            INTO COUNTER;

  IF (COUNTER > 0) THEN
  BEGIN
    delete FROM MeineTab S
    where   S.NR = :meineVar;
  END
END


Vielleicht hilft es ja mal jehmandem

Tschüss Rainer