Database Reference
In-Depth Information
chen, darunter Ruby, Java, PHP und Scheme wurden Erweiterungen ge-
schrieben. Eine Liste weiterer Sprachen finden Sie in der Dokumentation.
Geben Sie den folgenden Shell-Befehl ein:
$ createlang book --list
Er führt alle für Ihre Datenbank installierten Sprachen auf. Der Befehl crea-
telang wird außerdem genutzt, um neue Sprachen hinzuzufügen. Mehr dar-
über erfahren Sie online. 4
Trigger
Trigger führen Stored Procedures automatisch aus, wenn ein bestimmtes
Ereignis eintritt, etwa ein Insert oder ein Update. Sie erlauben es der Daten-
bank, eine bestimmte Reaktion auf geänderte Daten zu erzwingen.
Lassen Sie uns eine neue PL/pgSQL-Funktion entwickeln, die in einem Log
festhält, wenn ein Event aktualisiert wird (wir wollen sicherstellen, dass nie-
mand ein Event ändern kann und es dann später abstreitet). Zuerst legen
wir eine logs -Tabelle an, in der wir die Event-Änderungen festhalten. Ein
Primärschlüssel ist hier nicht nötig, da es sich bloß um einen Log handelt.
Ausführung in der Datenbank?
An dieser Stelle stehen wir das erste Mal vor einer Frage, die sich im Buch immer
wieder mal stellt: Gehört der Code in die Anwendung oder in die Datenbank? Das
ist eine schwierige Frage, die Sie für jede Anwendung neu beantworten müssen.
Der Vorteil ist, dass man die Performance um etwa eine Größenordnung verbessern
kann. Sie könnten zum Beispiel eine komplexe anwendungsspezifische Berechnung
durchführen müssen. Wenn die Berechnung viele Datensätze umfasst, müssen Sie
mit Stored Procedures nur ein einzelnes Ergebnis übertragen statt tausende von
Datensätzen. Der Preis ist die Aufteilung Ihrer Anwendung, Ihres Codes und Ihrer
Tests auf zwei unterschiedliche Programmierparadigmen.
CREATE TABLE logs (
event _ id integer ,
old _ title varchar (255),
old _ starts timestamp ,
old _ ends timestamp ,
logged _ at timestamp DEFAULT current _ timestamp
);
4. http://www.postgresql.org/docs/9.0/static/app-createlang.html
Search WWH ::




Custom Search