Trigger bei löschen einer Tabelle

Hallo @ all,

Ist es möglich einen Trigger zu feuern wenn eine komplette
Tabelle gelöscht wird?

Meinst du, wenn die Tabelle selbst gelöscht wird oder die Inhalte?

Die Antwort auf erstere Frage ist: Nein
Auf die zweite: Depends

natürlich meine ich das erste g wie es halt immer ist ;-).

Hast Du Dir schon mal den Syntax von CREATE TRIGGER in der Doku angeschaut? Die Lösung ist da beschrieben!



mfg

fristo

hmm, ich hab grad ein sehr ähnliches problem und hab in die create trigger doku reingeschaut.
… naja, und nich sehr viel rausgelesen.

ich brauch eigentlich nen trigger auf create table (dass wenn der befehl ausgeführt wird, woanders vermerkt wird, zb wann diese tabelle erstellt wurde, und noch einiges anderes)
ich habs mit nem trigger auf die pg_class versucht, aber dass wollte postgre nich :? (access denied)

hast mal ein oder zwei stichworte, wie ich da ne lösung finde?

grüsse

Hallo zbenjamin,

ich habe heute wohl einen schlechten Tag erwischt. Trigger-Event = Delete funktioniert ja nur bei den Datensätzen. Einen Trigger-Event gibt es dafür nicht.



mfg

fristo

Hallo Desmond,

mit einem Trigger kannst Du das nicht lösen. Ich sehe da nur zwei Ansätze:

  1. Schreibe Dir mit PL/pgSQL eine Funktion in der Du die Tabelle anlegst. In der Funktion kannst Du dann auch alle notwendigen Information in anderen Tabellen eintragen oder die Information als Returnwerte zurück geben.

  2. Alle wichtigen Information über eine Tabelle stehen in den Systemtabellen, so das man die Information aus den Systemtabellen filtern kann. Ich kann Dir allerdings im Augenblich nicht sagen, ob ein TIMESTAMP vom Anlegen der Tabelle in den Systemtabellen vorhanden ist. Es ist aber zu vermuten. Das muss Du selbst heraus finden.

Für mich ist der 2. Ansatz die saubere Lösung.

Je nachdem wie Deine Application gestalltet ist, könnte Dir eine Fehlemeldung zu Schaffen manchen. Schau Dir deshalb auch mal diesen Thread an:

http://www.pg-forum.de/viewtopic.php?p=33&highlight=#33


Es ist ungewöhnlich, dass man sich den TIMESTAMP vom Anlegen einer Tabelle notiert. Welchen Hintergrund hat das bei Dir?



mfg

fristo

das hat was mit diesem thread hier zu tun :
http://www.pg-forum.de/ftopic258.html

Ich muss darauf reagieren können wenn ein client seine verbindung beendet oder diese einfach beendet wird.
Ich dachte ich könnte das ganze mit temporären tabellen lösen.
Wenn dann die Tabelle beim beenden der clientverbindung (aus welchem grund auch immer) gelöscht wird hätte ich darauf reagieren und meine aufräumarbeiten starten können.

greets benjamin

Vielleicht solltest du doch Oracle benutzen? :wink:

[quote=“ads”]Vielleicht solltest du doch Oracle benutzen? ]

Irgendwie hab ich das gefühl das würde ein bisschen teuer werden g-----

Aber es bietet dir wohl die Features, die du in deinem speziellen Fall benötigst.

naja so teuer ist oracle auch net. für den privaten/entwicklungs bereich bekommst du sowieso alles umsonst von oracle und auch so ist das im vergleich zu anderen enterprise datenbanken nicht überteuert…

aber wir kommen vom thema ab. sind ja bei postgresql und nicht bei oracle :wink:

cu tb.