<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de-x-formal">
	<id>https://glossar.hs-augsburg.de/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Bastian</id>
	<title>GlossarWiki - Benutzerbeiträge [de-formal]</title>
	<link rel="self" type="application/atom+xml" href="https://glossar.hs-augsburg.de/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Bastian"/>
	<link rel="alternate" type="text/html" href="https://glossar.hs-augsburg.de/Spezial:Beitr%C3%A4ge/Bastian"/>
	<updated>2026-07-17T16:38:18Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.43.3</generator>
	<entry>
		<id>https://glossar.hs-augsburg.de/w/index.php?title=Datei:DebuggingFlex_debugButtons.jpg&amp;diff=13347</id>
		<title>Datei:DebuggingFlex debugButtons.jpg</title>
		<link rel="alternate" type="text/html" href="https://glossar.hs-augsburg.de/w/index.php?title=Datei:DebuggingFlex_debugButtons.jpg&amp;diff=13347"/>
		<updated>2010-01-12T18:07:24Z</updated>

		<summary type="html">&lt;p&gt;Bastian: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Bastian</name></author>
	</entry>
	<entry>
		<id>https://glossar.hs-augsburg.de/w/index.php?title=Datei:DebuggingFlex_debugWindow.jpg&amp;diff=13345</id>
		<title>Datei:DebuggingFlex debugWindow.jpg</title>
		<link rel="alternate" type="text/html" href="https://glossar.hs-augsburg.de/w/index.php?title=Datei:DebuggingFlex_debugWindow.jpg&amp;diff=13345"/>
		<updated>2010-01-12T18:06:39Z</updated>

		<summary type="html">&lt;p&gt;Bastian: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Bastian</name></author>
	</entry>
	<entry>
		<id>https://glossar.hs-augsburg.de/w/index.php?title=Datei:AS3_Comp_SWC_rightMenu.jpg&amp;diff=13328</id>
		<title>Datei:AS3 Comp SWC rightMenu.jpg</title>
		<link rel="alternate" type="text/html" href="https://glossar.hs-augsburg.de/w/index.php?title=Datei:AS3_Comp_SWC_rightMenu.jpg&amp;diff=13328"/>
		<updated>2010-01-11T21:24:44Z</updated>

		<summary type="html">&lt;p&gt;Bastian: AS3_Comp_Parametererstellung.jpg&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;AS3_Comp_Parametererstellung.jpg&lt;/div&gt;</summary>
		<author><name>Bastian</name></author>
	</entry>
	<entry>
		<id>https://glossar.hs-augsburg.de/w/index.php?title=Datei:AS3_Comp_Parametererstellung.jpg&amp;diff=13327</id>
		<title>Datei:AS3 Comp Parametererstellung.jpg</title>
		<link rel="alternate" type="text/html" href="https://glossar.hs-augsburg.de/w/index.php?title=Datei:AS3_Comp_Parametererstellung.jpg&amp;diff=13327"/>
		<updated>2010-01-11T21:24:13Z</updated>

		<summary type="html">&lt;p&gt;Bastian: Screenshot für den Artikel Flash Komponente AS3&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Screenshot für den Artikel Flash Komponente AS3&lt;/div&gt;</summary>
		<author><name>Bastian</name></author>
	</entry>
	<entry>
		<id>https://glossar.hs-augsburg.de/w/index.php?title=Datei:AS3_CompWindow.jpg&amp;diff=13326</id>
		<title>Datei:AS3 CompWindow.jpg</title>
		<link rel="alternate" type="text/html" href="https://glossar.hs-augsburg.de/w/index.php?title=Datei:AS3_CompWindow.jpg&amp;diff=13326"/>
		<updated>2010-01-11T21:23:23Z</updated>

		<summary type="html">&lt;p&gt;Bastian: Screenshot für den Artikel Flash Komponente AS3&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Screenshot für den Artikel Flash Komponente AS3&lt;/div&gt;</summary>
		<author><name>Bastian</name></author>
	</entry>
	<entry>
		<id>https://glossar.hs-augsburg.de/w/index.php?title=Datei:AS3-komponenten_Button.jpg&amp;diff=13325</id>
		<title>Datei:AS3-komponenten Button.jpg</title>
		<link rel="alternate" type="text/html" href="https://glossar.hs-augsburg.de/w/index.php?title=Datei:AS3-komponenten_Button.jpg&amp;diff=13325"/>
		<updated>2010-01-11T21:22:42Z</updated>

		<summary type="html">&lt;p&gt;Bastian: Screenshot für den Artikel Flash Komponente AS3&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Screenshot für den Artikel Flash Komponente AS3&lt;/div&gt;</summary>
		<author><name>Bastian</name></author>
	</entry>
	<entry>
		<id>https://glossar.hs-augsburg.de/w/index.php?title=Trigger&amp;diff=13055</id>
		<title>Trigger</title>
		<link rel="alternate" type="text/html" href="https://glossar.hs-augsburg.de/w/index.php?title=Trigger&amp;diff=13055"/>
		<updated>2009-07-16T14:25:56Z</updated>

		<summary type="html">&lt;p&gt;Bastian: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Definition=&lt;br /&gt;
In Datenbanken ist es neben der Speicherung und Abfrage von Daten auch möglich Logik selbst zu implementieren. Trigger gehören zum Bereich Logik und werden automatisch bei bestimmten Ereignissen, wie UPDATE, INSERT oder DELETE von Daten, ausgelöst.&lt;br /&gt;
&lt;br /&gt;
=Vorteile=&lt;br /&gt;
*Trigger lösen automatisch aus; Der Benutzer muss sich nicht über weitere Vorgänge des Updates Gedanken machen (Fehlervermeidung)&lt;br /&gt;
*Trigger können Bedingungen bei INSERT, UPDATE oder DELETE Befehlen überprüfen&lt;br /&gt;
*Trigger werden einmal für eine bestimmte Tabelle und Aufgabe implementiert&lt;br /&gt;
*Trigger können in sich wiederum Trigger auslösen.&lt;br /&gt;
*Trigger werden direkt im Datenbanksystemaufgerufen&lt;br /&gt;
*Trigger können den Client-Serververkehr entlasten&lt;br /&gt;
&lt;br /&gt;
=Nachteile &amp;amp; Warnungen=&lt;br /&gt;
*Trigger können in sich wiederum Trigger auslösen (Belastung des Datenbanksystems)&lt;br /&gt;
*Debuggen wird erschwert, weil Statements in Triggern nicht beim Debuggen aufgeführt werden&lt;br /&gt;
*Mächtigkeit der Trigger fordert eine sehr gute Implementierung.&lt;br /&gt;
*Fehlerhafte Trigger können Datenbestände beschädigen oder unbrauchbar machen&lt;br /&gt;
*Festlegung, wie oft ein Trigger ausgeführt werden soll (Entlastung des Datenbanksystems)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Möglichkeiten von Triggern=&lt;br /&gt;
*Oft ist es notwendig, bei einer Löschung eines Kunden oder Users weitere Löschvorgänge auszuführen&lt;br /&gt;
*Protokollerstellung bei einem Löschvorgang&lt;br /&gt;
*Sicherung von Daten in eine Sicherungstabelle (s. Beispiel)&lt;br /&gt;
*Auslösung von Vorgängen bei einem bestimmten Fall (z.B.: Mitgliederzahl über 100)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Implementierung von Triggern=&lt;br /&gt;
==Allgemein==&lt;br /&gt;
Für die Erstellung von Triggern werden spezielle Programmiersprachen (PL/SQL oder SQL PL) verwendet.&lt;br /&gt;
Außerdem ist es in einigen Datenbanksystemen möglich, in Triggern auch [[Stored Procedure]]s aufzurufen.&lt;br /&gt;
Dadurch entsteht die Möglichkeit ein Programm aus einer anderen Programmiersprache zu verwenden,&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
&#039;&#039;Anlegen eines Triggers&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
CREATE TRIGGER triggername&lt;br /&gt;
[BEFORE | AFTER] [ INSERT | DELETE | UPDATE [OR ...] ]&lt;br /&gt;
	ON tablename FOR EACH ROW&lt;br /&gt;
	EXECUTE PROCEDURE functionname [(args)];&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Löschen eines Triggers&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
DROP TRIGGER triggername&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Beispiele=&lt;br /&gt;
==Automatische Sicherung von Inhalten einer Tabelle in eine zweite Tabelle==&lt;br /&gt;
&#039;&#039;&#039;1. Schritt: Erstellung einer Tabelle&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
CREATE TABLE tabelle1&lt;br /&gt;
(&lt;br /&gt;
        id         integer primary key,&lt;br /&gt;
        name       varchar(40) not null,&lt;br /&gt;
        telefon    varchar(10),&lt;br /&gt;
        umsatz     decimal(10,2)&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Erklärung&#039;&#039;: Anlegen der Tabelle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2. Schritt: Erstellung der Sicherungstabelle&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
CREATE TABLE tabelle1_backup&lt;br /&gt;
(&lt;br /&gt;
        id             integer primary key,&lt;br /&gt;
        name           varchar(40) not null,&lt;br /&gt;
        telefon        varchar(10),&lt;br /&gt;
        umsatz         decimal(10,2)&lt;br /&gt;
        user_changed   varchar(40),&lt;br /&gt;
        date_changed   date,&lt;br /&gt;
        operation      varchar(15)&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Erklärung&#039;&#039;: Anlegen der Sicherungstabelle mit den gleichen Spalten aus der Haupttabelle und zusätzlichen Spalten, die das Datum, die vorgenommene Änderung und User speichern.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. Schritt: Erstellung einer Funktion für die automatische Sicherung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
CREATE FUNCTION backup_tabelle1() RETURNS OPAQUE AS ‘&lt;br /&gt;
	BEGIN&lt;br /&gt;
		INSERT INTO tabelle1_backup&lt;br /&gt;
			VALUES&lt;br /&gt;
			(&lt;br /&gt;
				OLD.id,&lt;br /&gt;
				OLD.name,&lt;br /&gt;
				OLD.telefon,&lt;br /&gt;
				OLD.umsatz,&lt;br /&gt;
				CURRENT_USER,&lt;br /&gt;
				now(),&lt;br /&gt;
				TG_OP&lt;br /&gt;
			);&lt;br /&gt;
		RETURN NULL;&lt;br /&gt;
	END;&lt;br /&gt;
‘ LANGUAGE ‘plpgsql’&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Erklärung&#039;&#039;: Die Funktion backup_tabelle1() nimmt die nicht mehr aktuellen Werte aus tabelle1 und speichert sie in der tabelle1_backup als eine neue Zeile.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4. Erstellung des Triggers&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
CREATE TRIGGER backup_tabelle1&lt;br /&gt;
	AFTER DELETE OR UPDATE&lt;br /&gt;
	ON tabelle1&lt;br /&gt;
	FOR EACH ROW&lt;br /&gt;
		EXECUTE PROCEDURE backup_tabelle1();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Erklärung&#039;&#039;: Der Trigger wird erstellt und nach jedem DELETE oder UPDATE Befehl der auf die tabelle1 ausgeführt wird, ruft er die Funktion backup_tabelle1() auf,&lt;br /&gt;
&lt;br /&gt;
=Quellen=&lt;br /&gt;
&lt;br /&gt;
*[[Throll, M.; Bartosch, O. (2005): Einstieg in SQL]]&lt;br /&gt;
*[[Eisentraut, P. (2003): PostgreSQL - Das offizielle Handbuch]]&lt;br /&gt;
*[[Douglas, K.; Douglas S (2003): PostgreSQL]]&lt;br /&gt;
&lt;br /&gt;
*[http://de.wikipedia.org/wiki/Datenbanktrigger]&lt;br /&gt;
*[http://www.dbmsmag.com/9605d17.html]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:SQL]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;br /&gt;
[[Kategorie:GlossarWiki]]&lt;/div&gt;</summary>
		<author><name>Bastian</name></author>
	</entry>
	<entry>
		<id>https://glossar.hs-augsburg.de/w/index.php?title=Trigger&amp;diff=12958</id>
		<title>Trigger</title>
		<link rel="alternate" type="text/html" href="https://glossar.hs-augsburg.de/w/index.php?title=Trigger&amp;diff=12958"/>
		<updated>2009-07-11T07:22:43Z</updated>

		<summary type="html">&lt;p&gt;Bastian: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Definition=&lt;br /&gt;
In Datenbanken ist es neben der Speicherung und Abfrage von Daten auch möglich Logik selbst zu implementieren. Trigger gehören zum Bereich Logik und werden automatisch bei bestimmten Ereignissen, wie UPDATE, INSERT oder DELETE von Daten, ausgelöst.&lt;br /&gt;
&lt;br /&gt;
=Vorteile=&lt;br /&gt;
*Trigger lösen automatisch aus; Der Benutzer muss sich nicht über weitere Vorgänge des Updates Gedanken machen (Fehlervermeidung)&lt;br /&gt;
*Trigger können Bedingungen bei INSERT, UPDATE oder DELETE Befehlen überprüfen&lt;br /&gt;
*Trigger werden einmal für eine bestimmte Tabelle und Aufgabe implementiert&lt;br /&gt;
*Trigger können in sich wiederum Trigger auslösen.&lt;br /&gt;
*Trigger werden direkt im Datenbanksystemaufgerufen&lt;br /&gt;
*Trigger können den Client-Serververkehr entlasten&lt;br /&gt;
&lt;br /&gt;
=Nachteile &amp;amp; Warnungen=&lt;br /&gt;
*Trigger können in sich wiederum Trigger auslösen (Belastung des Datenbanksystems)&lt;br /&gt;
*Debuggen wird erschwert, weil Statements in Triggern nicht beim Debuggen aufgeführt werden&lt;br /&gt;
*Mächtigkeit der Trigger fordert eine sehr gute Implementierung.&lt;br /&gt;
*Fehlerhafte Trigger können Datenbestände beschädigen oder unbrauchbar machen&lt;br /&gt;
*Festlegung, wie oft ein Trigger ausgeführt werden soll (Entlastung des Datenbanksystems)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Möglichkeiten von Triggern=&lt;br /&gt;
*Oft ist es notwendig, bei einer Löschung eines Kunden oder Users weitere Löschvorgänge auszuführen&lt;br /&gt;
*Protokollerstellung bei einem Löschvorgang&lt;br /&gt;
*Sicherung von Daten in eine Sicherungstabelle (s. Beispiel)&lt;br /&gt;
*Auslösung von Vorgängen bei einem bestimmten Fall (z.B.: Mitgliederzahl über 100)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Implementierung von Triggern=&lt;br /&gt;
==Allgemein==&lt;br /&gt;
Für die Erstellung von Triggern werden spezielle Programmiersprachen (PL/SQL oder SQL PL) verwendet.&lt;br /&gt;
Außerdem ist es in einigen Datenbanksystemen möglich, in Triggern auch [[Stored Procedure]]s aufzurufen.&lt;br /&gt;
Dadurch entsteht die Möglichkeit ein Programm aus einer anderen Programmiersprache zu verwenden,&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
&#039;&#039;Anlegen eines Triggers&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
CREATE TRIGGER triggername&lt;br /&gt;
[BEFORE | AFTER] [ INSERT | DELETE | UPDATE [OR ...] ]&lt;br /&gt;
	ON tablename FOR EACH ROW&lt;br /&gt;
	EXECUTE PROCEDURE functionname [(args)];&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Löschen eines Triggers&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
DROP TRIGGER triggername&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Beispiele=&lt;br /&gt;
==Automatische Sicherung von Inhalten einer Tabelle in eine zweite Tabelle==&lt;br /&gt;
&#039;&#039;&#039;1. Schritt: Erstellung einer Tabelle&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
CREATE TABLE tabelle1&lt;br /&gt;
(&lt;br /&gt;
        id         integer primary key,&lt;br /&gt;
        name       varchar(40) not null,&lt;br /&gt;
        telefon    varchar(10),&lt;br /&gt;
        umsatz     decimal(10,2)&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Erklärung&#039;&#039;: Anlegen der Tabelle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2. Schritt: Erstellung der Sicherungstabelle&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
CREATE TABLE tabelle1_backup&lt;br /&gt;
(&lt;br /&gt;
        id             integer primary key,&lt;br /&gt;
        name           varchar(40) not null,&lt;br /&gt;
        telefon        varchar(10),&lt;br /&gt;
        umsatz         decimal(10,2)&lt;br /&gt;
        user_changed   varchar(40),&lt;br /&gt;
        date_changed   date,&lt;br /&gt;
        operation      varchar(15)&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Erklärung&#039;&#039;: Anlegen der Sicherungstabelle mit den gleichen Spalten aus der Haupttabelle und zusätzlichen Spalten, die das Datum, die vorgenommene Änderung und User speichern.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. Schritt: Erstellung einer Funktion für die automatische Sicherung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
CREATE FUNCTION backup_tabelle1() RETURNS OPAQUE AS ‘&lt;br /&gt;
	BEGIN&lt;br /&gt;
		INSERT INTO tabelle1_backup&lt;br /&gt;
			VALUES&lt;br /&gt;
			(&lt;br /&gt;
				OLD.id,&lt;br /&gt;
				OLD.name,&lt;br /&gt;
				OLD.telefon,&lt;br /&gt;
				OLD.umsatz,&lt;br /&gt;
				CURRENT_USER,&lt;br /&gt;
				now(),&lt;br /&gt;
				TG_OP&lt;br /&gt;
			);&lt;br /&gt;
		RETURN NULL;&lt;br /&gt;
	END;&lt;br /&gt;
‘ LANGUAGE ‘plpgsql’&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Erklärung&#039;&#039;: Die Funktion backup_tabelle1() nimmt die nicht mehr aktuellen Werte aus tabelle1 und speichert sie in der tabelle1_backup als eine neue Zeile.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4. Erstellung des Triggers&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
CREATE TRIGGER backup_tabelle1&lt;br /&gt;
	AFTER DELETE OR UPDATE&lt;br /&gt;
	ON tabelle1&lt;br /&gt;
	FOR EACH ROW&lt;br /&gt;
		EXECUTE PROCEDURE backup_tabelle1();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Erklärung&#039;&#039;: Der Trigger wird erstellt und nach jedem DELETE oder UPDATE Befehl der auf die tabelle1 ausgeführt wird, ruft er die Funktion backup_tabelle1() auf,&lt;br /&gt;
&lt;br /&gt;
=Quellen=&lt;br /&gt;
&lt;br /&gt;
*[[Throll, M.; Bartosch, O. (2005): Einstieg in SQL]]&lt;br /&gt;
*[[Eisentraut, P. (2003): PostgreSQL - Das offizielle Handbuch]]&lt;br /&gt;
*[[Douglas, K.; Douglas S (2003): PostgreSQL]]&lt;br /&gt;
&lt;br /&gt;
*[http://de.wikipedia.org/wiki/Datenbanktrigger]&lt;br /&gt;
*[http://www.dbmsmag.com/9605d17.html]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:SQL]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;br /&gt;
[[Kategorie:GlossarWiki]]&lt;/div&gt;</summary>
		<author><name>Bastian</name></author>
	</entry>
	<entry>
		<id>https://glossar.hs-augsburg.de/w/index.php?title=Trigger&amp;diff=12957</id>
		<title>Trigger</title>
		<link rel="alternate" type="text/html" href="https://glossar.hs-augsburg.de/w/index.php?title=Trigger&amp;diff=12957"/>
		<updated>2009-07-10T10:11:28Z</updated>

		<summary type="html">&lt;p&gt;Bastian: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Definition=&lt;br /&gt;
In Datenbanken ist es neben der Speicherung und Abfrage von Daten auch möglich Logik selbst zu implementieren. Trigger gehören zum Bereich Logik und werden automatisch bei bestimmten Ereignissen, wie UPDATE, INSERT oder DELETE von Daten, ausgelöst.&lt;br /&gt;
&lt;br /&gt;
=Vorteile=&lt;br /&gt;
*Trigger lösen automatisch aus; Der Benutzer muss sich nicht über weitere Vorgänge des Updates Gedanken machen (Fehlervermeidung)&lt;br /&gt;
*Trigger können Bedingungen bei INSERT, UPDATE oder DELETE Befehlen überprüfen&lt;br /&gt;
*Trigger werden einmal für eine bestimmte Tabelle und Aufgabe implementiert&lt;br /&gt;
*Trigger können in sich wiederum Trigger auslösen.&lt;br /&gt;
*Trigger werden direkt im Datenbanksystemaufgerufen&lt;br /&gt;
*Trigger können den Client-Serververkehr entlasten&lt;br /&gt;
&lt;br /&gt;
=Nachteile &amp;amp; Warnungen=&lt;br /&gt;
*Trigger können in sich wiederum Trigger auslösen (Belastung des Datenbanksystems)&lt;br /&gt;
*Debuggen wird erschwert, weil Statements in Triggern nicht beim Debuggen aufgeführt werden&lt;br /&gt;
*Mächtigkeit der Trigger fordert eine sehr gute Implementierung.&lt;br /&gt;
*Fehlerhafte Trigger können Datenbestände beschädigen oder unbrauchbar machen&lt;br /&gt;
*Festlegung, wie oft ein Trigger ausgeführt werden soll (Entlastung des Datenbanksystems)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Möglichkeiten von Triggern=&lt;br /&gt;
*Oft ist es notwendig, bei einer Löschung eines Kunden oder Users weitere Löschvorgänge auszuführen&lt;br /&gt;
*Protokollerstellung bei einem Löschvorgang&lt;br /&gt;
*Sicherung von Daten in eine Sicherungstabelle (s. Beispiel)&lt;br /&gt;
*Auslösung von Vorgängen bei einem bestimmten Fall (z.B.: Mitgliederzahl über 100)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Implementierung von Triggern=&lt;br /&gt;
==Allgemein==&lt;br /&gt;
Für die Erstellung von Triggern werden spezielle Programmiersprachen (PL/SQL oder SQL PL) verwendet.&lt;br /&gt;
Außerdem ist es in einigen Datenbanksystemen möglich, in Triggern auch [[Stored Procedure]]s aufzurufen.&lt;br /&gt;
Dadurch entsteht die Möglichkeit ein Programm aus einer anderen Programmiersprache zu verwenden,&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
&#039;&#039;Anlegen eines Triggers&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
CREATE TRIGGER triggername&lt;br /&gt;
[BEFORE | AFTER] [ INSERT | DELETE | UPDATE [OR ...] ]&lt;br /&gt;
	ON tablename FOR EACH ROW&lt;br /&gt;
	EXECUTE PROCEDURE functionname [(args)];&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Löschen eines Triggers&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
DROP TRIGGER triggername&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Beispiele=&lt;br /&gt;
==Automatische Sicherung von Inhalten einer Tabelle in eine zweite Tabelle==&lt;br /&gt;
&#039;&#039;&#039;1. Schritt: Erstellung einer Tabelle&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
CREATE TABLE tabelle1&lt;br /&gt;
(&lt;br /&gt;
	id             integer primary key,&lt;br /&gt;
	name       varchar(40) not null,&lt;br /&gt;
	telefon    varchar(10),&lt;br /&gt;
	umsatz    decimal(10,2)&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Erklärung&#039;&#039;: Anlegen der Tabelle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2. Schritt: Erstellung der Sicherungstabelle&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
CREATE TABLE tabelle1_backup&lt;br /&gt;
(&lt;br /&gt;
        id                            integer primary key,&lt;br /&gt;
	name                      varchar(40) not null,&lt;br /&gt;
	telefon                   varchar(10),&lt;br /&gt;
	umsatz                  decimal(10,2)&lt;br /&gt;
	user_changed       varchar(40),&lt;br /&gt;
	date_changed      date,&lt;br /&gt;
	operation              varchar(15)&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Erklärung&#039;&#039;: Anlegen der Sicherungstabelle mit den gleichen Spalten aus der Haupttabelle und zusätzlichen Spalten, die das Datum, die vorgenommene Änderung und User speichern.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. Schritt: Erstellung einer Funktion für die automatische Sicherung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
CREATE FUNCTION backup_tabelle1() RETURNS OPAQUE AS ‘&lt;br /&gt;
	BEGIN&lt;br /&gt;
		INSERT INTO tabelle1_backup&lt;br /&gt;
			VALUES&lt;br /&gt;
			(&lt;br /&gt;
				OLD.id,&lt;br /&gt;
				OLD.name,&lt;br /&gt;
				OLD.telefon,&lt;br /&gt;
				OLD.umsatz,&lt;br /&gt;
				CURRENT_USER,&lt;br /&gt;
				now(),&lt;br /&gt;
				TG_OP&lt;br /&gt;
			);&lt;br /&gt;
		RETURN NULL;&lt;br /&gt;
	END;&lt;br /&gt;
‘ LANGUAGE ‘plpgsql’&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Erklärung&#039;&#039;: Die Funktion backup_tabelle1() nimmt die nicht mehr aktuellen Werte aus tabelle1 und speichert sie in der tabelle1_backup als eine neue Zeile.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4. Erstellung des Triggers&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
CREATE TRIGGER backup_tabelle1&lt;br /&gt;
	AFTER DELETE OR UPDATE&lt;br /&gt;
	ON tabelle1&lt;br /&gt;
	FOR EACH ROW&lt;br /&gt;
		EXECUTE PROCEDURE backup_tabelle1();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Erklärung&#039;&#039;: Der Trigger wird erstellt und nach jedem DELETE oder UPDATE Befehl der auf die tabelle1 ausgeführt wird, ruft er die Funktion backup_tabelle1() auf,&lt;br /&gt;
&lt;br /&gt;
=Quellen=&lt;br /&gt;
&lt;br /&gt;
*[[Throll, M.; Bartosch, O. (2005): Einstieg in SQL]]&lt;br /&gt;
*[[Eisentraut, P. (2003): PostgreSQL - Das offizielle Handbuch]]&lt;br /&gt;
*[[Douglas, K.; Douglas S (2003): PostgreSQL]]&lt;br /&gt;
&lt;br /&gt;
*[http://de.wikipedia.org/wiki/Datenbanktrigger]&lt;br /&gt;
*[http://www.dbmsmag.com/9605d17.html]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:SQL]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;br /&gt;
[[Kategorie:GlossarWiki]]&lt;/div&gt;</summary>
		<author><name>Bastian</name></author>
	</entry>
	<entry>
		<id>https://glossar.hs-augsburg.de/w/index.php?title=Trigger&amp;diff=12955</id>
		<title>Trigger</title>
		<link rel="alternate" type="text/html" href="https://glossar.hs-augsburg.de/w/index.php?title=Trigger&amp;diff=12955"/>
		<updated>2009-07-10T09:20:38Z</updated>

		<summary type="html">&lt;p&gt;Bastian: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Definition=&lt;br /&gt;
In Datenbanken ist es neben der Speicherung und Abfrage von Daten auch möglich Logik selbst zu implementieren. Trigger gehören zum Bereich Logik und werden automatisch bei bestimmten Ereignissen, wie UPDATE, INSERT oder DELETE von Daten, ausgelöst.&lt;br /&gt;
&lt;br /&gt;
=Vorteile &amp;amp; Möglichkeiten=&lt;br /&gt;
#Oft ist es notwendig, bei einer Löschung eines Kunden oder Users weitere Löschvorgänge auszuführen&lt;br /&gt;
#Protokollerstellung bei einem Löschvorgang&lt;br /&gt;
#Sicherung von Daten in eine Sicherungstabelle (s. Beispiel)&lt;br /&gt;
#Auslösung von Vorgängen bei einem bestimmten Fall (z.B.: Mitgliederzahl über 100)&lt;br /&gt;
#Erfüllung von Bedingungen bei INSERT, UPDATE oder DELETE Befehlen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Implementierung von Triggern: Syntax=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Anlegen eines Triggers&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
CREATE TRIGGER triggername&lt;br /&gt;
[BEFORE | AFTER] [ INSERT | DELETE | UPDATE [OR ...] ]&lt;br /&gt;
	ON tablename FOR EACH ROW&lt;br /&gt;
	EXECUTE PROCEDURE functionname [(args)];&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Löschen eines Triggers&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
DROP TRIGGER triggername&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Beispiele=&lt;br /&gt;
==Automatische Sicherung von Inhalten einer Tabelle in eine zweite Tabelle==&lt;br /&gt;
&#039;&#039;&#039;1. Schritt: Erstellung einer Tabelle&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
CREATE TABLE tabelle1&lt;br /&gt;
(&lt;br /&gt;
	id		integer primary key,&lt;br /&gt;
	name      varchar(40) not null,&lt;br /&gt;
	telefon	varchar(10),&lt;br /&gt;
	umsatz	decimal(10,2)&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Erklärung&#039;&#039;: Anlegen der Tabelle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2. Schritt: Erstellung der Sicherungstabelle&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
CREATE TABLE tabelle1_backup&lt;br /&gt;
(&lt;br /&gt;
        id                            integer primary key,&lt;br /&gt;
	name                      varchar(40) not null,&lt;br /&gt;
	telefon                   varchar(10),&lt;br /&gt;
	umsatz                  decimal(10,2)&lt;br /&gt;
	user_changed       varchar(40),&lt;br /&gt;
	date_changed      date,&lt;br /&gt;
	operation              varchar(15)&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Erklärung&#039;&#039;: Anlegen der Sicherungstabelle mit den gleichen Spalten aus der Haupttabelle und zusätzlichen Spalten, die das Datum, die vorgenommene Änderung und User speichern.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. Schritt: Erstellung einer Funktion für die automatische Sicherung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
CREATE FUNCTION backup_tabelle1() RETURNS OPAQUE AS ‘&lt;br /&gt;
	BEGIN&lt;br /&gt;
		INSERT INTO tabelle1_backup&lt;br /&gt;
			VALUES&lt;br /&gt;
			(&lt;br /&gt;
				OLD.id,&lt;br /&gt;
				OLD.name,&lt;br /&gt;
				OLD.telefon,&lt;br /&gt;
				OLD.umsatz,&lt;br /&gt;
				CURRENT_USER,&lt;br /&gt;
				now(),&lt;br /&gt;
				TG_OP&lt;br /&gt;
			);&lt;br /&gt;
		RETURN NULL;&lt;br /&gt;
	END;&lt;br /&gt;
‘ LANGUAGE ‘plpgsql’&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Erklärung&#039;&#039;: Die Funktion backup_tabelle1() nimmt die nicht mehr aktuellen Werte aus tabelle1 und speichert sie in der tabelle1_backup als eine neue Zeile.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4. Erstellung des Triggers&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
CREATE TRIGGER backup_tabelle1&lt;br /&gt;
	AFTER DELETE OR UPDATE&lt;br /&gt;
	ON tabelle1&lt;br /&gt;
	FOR EACH ROW&lt;br /&gt;
		EXECUTE PROCEDURE backup_tabelle1();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Erklärung&#039;&#039;: Der Trigger wird erstellt und nach jedem DELETE oder UPDATE Befehl der auf die tabelle1 ausgeführt wird, ruft er die Funktion backup_tabelle1() auf,&lt;br /&gt;
&lt;br /&gt;
=Quellen=&lt;br /&gt;
&lt;br /&gt;
*[[Throll, M.; Bartosch, O. (2005): Einstieg in SQL]]&lt;br /&gt;
*[[Eisentraut, P. (2003): PostgreSQL - Das offizielle Handbuch]]&lt;br /&gt;
*[[Douglas, K.; Douglas S (2003): PostgreSQL]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:SQL]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;br /&gt;
[[Kategorie:GlossarWiki]]&lt;/div&gt;</summary>
		<author><name>Bastian</name></author>
	</entry>
	<entry>
		<id>https://glossar.hs-augsburg.de/w/index.php?title=Trigger&amp;diff=12954</id>
		<title>Trigger</title>
		<link rel="alternate" type="text/html" href="https://glossar.hs-augsburg.de/w/index.php?title=Trigger&amp;diff=12954"/>
		<updated>2009-07-10T09:20:24Z</updated>

		<summary type="html">&lt;p&gt;Bastian: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Eingereicht zur Überprüfung}} =&lt;br /&gt;
&lt;br /&gt;
=Definition=&lt;br /&gt;
In Datenbanken ist es neben der Speicherung und Abfrage von Daten auch möglich Logik selbst zu implementieren. Trigger gehören zum Bereich Logik und werden automatisch bei bestimmten Ereignissen, wie UPDATE, INSERT oder DELETE von Daten, ausgelöst.&lt;br /&gt;
&lt;br /&gt;
=Vorteile &amp;amp; Möglichkeiten=&lt;br /&gt;
#Oft ist es notwendig, bei einer Löschung eines Kunden oder Users weitere Löschvorgänge auszuführen&lt;br /&gt;
#Protokollerstellung bei einem Löschvorgang&lt;br /&gt;
#Sicherung von Daten in eine Sicherungstabelle (s. Beispiel)&lt;br /&gt;
#Auslösung von Vorgängen bei einem bestimmten Fall (z.B.: Mitgliederzahl über 100)&lt;br /&gt;
#Erfüllung von Bedingungen bei INSERT, UPDATE oder DELETE Befehlen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Implementierung von Triggern: Syntax=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Anlegen eines Triggers&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
CREATE TRIGGER triggername&lt;br /&gt;
[BEFORE | AFTER] [ INSERT | DELETE | UPDATE [OR ...] ]&lt;br /&gt;
	ON tablename FOR EACH ROW&lt;br /&gt;
	EXECUTE PROCEDURE functionname [(args)];&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Löschen eines Triggers&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
DROP TRIGGER triggername&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Beispiele=&lt;br /&gt;
==Automatische Sicherung von Inhalten einer Tabelle in eine zweite Tabelle==&lt;br /&gt;
&#039;&#039;&#039;1. Schritt: Erstellung einer Tabelle&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
CREATE TABLE tabelle1&lt;br /&gt;
(&lt;br /&gt;
	id		integer primary key,&lt;br /&gt;
	name      varchar(40) not null,&lt;br /&gt;
	telefon	varchar(10),&lt;br /&gt;
	umsatz	decimal(10,2)&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Erklärung&#039;&#039;: Anlegen der Tabelle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2. Schritt: Erstellung der Sicherungstabelle&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
CREATE TABLE tabelle1_backup&lt;br /&gt;
(&lt;br /&gt;
        id                            integer primary key,&lt;br /&gt;
	name                      varchar(40) not null,&lt;br /&gt;
	telefon                   varchar(10),&lt;br /&gt;
	umsatz                  decimal(10,2)&lt;br /&gt;
	user_changed       varchar(40),&lt;br /&gt;
	date_changed      date,&lt;br /&gt;
	operation              varchar(15)&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Erklärung&#039;&#039;: Anlegen der Sicherungstabelle mit den gleichen Spalten aus der Haupttabelle und zusätzlichen Spalten, die das Datum, die vorgenommene Änderung und User speichern.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. Schritt: Erstellung einer Funktion für die automatische Sicherung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
CREATE FUNCTION backup_tabelle1() RETURNS OPAQUE AS ‘&lt;br /&gt;
	BEGIN&lt;br /&gt;
		INSERT INTO tabelle1_backup&lt;br /&gt;
			VALUES&lt;br /&gt;
			(&lt;br /&gt;
				OLD.id,&lt;br /&gt;
				OLD.name,&lt;br /&gt;
				OLD.telefon,&lt;br /&gt;
				OLD.umsatz,&lt;br /&gt;
				CURRENT_USER,&lt;br /&gt;
				now(),&lt;br /&gt;
				TG_OP&lt;br /&gt;
			);&lt;br /&gt;
		RETURN NULL;&lt;br /&gt;
	END;&lt;br /&gt;
‘ LANGUAGE ‘plpgsql’&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Erklärung&#039;&#039;: Die Funktion backup_tabelle1() nimmt die nicht mehr aktuellen Werte aus tabelle1 und speichert sie in der tabelle1_backup als eine neue Zeile.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4. Erstellung des Triggers&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
CREATE TRIGGER backup_tabelle1&lt;br /&gt;
	AFTER DELETE OR UPDATE&lt;br /&gt;
	ON tabelle1&lt;br /&gt;
	FOR EACH ROW&lt;br /&gt;
		EXECUTE PROCEDURE backup_tabelle1();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Erklärung&#039;&#039;: Der Trigger wird erstellt und nach jedem DELETE oder UPDATE Befehl der auf die tabelle1 ausgeführt wird, ruft er die Funktion backup_tabelle1() auf,&lt;br /&gt;
&lt;br /&gt;
=Quellen=&lt;br /&gt;
&lt;br /&gt;
*[[Throll, M.; Bartosch, O. (2005): Einstieg in SQL]]&lt;br /&gt;
*[[Eisentraut, P. (2003): PostgreSQL - Das offizielle Handbuch]]&lt;br /&gt;
*[[Douglas, K.; Douglas S (2003): PostgreSQL]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:SQL]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;br /&gt;
[[Kategorie:GlossarWiki]]&lt;/div&gt;</summary>
		<author><name>Bastian</name></author>
	</entry>
	<entry>
		<id>https://glossar.hs-augsburg.de/w/index.php?title=Trigger&amp;diff=12953</id>
		<title>Trigger</title>
		<link rel="alternate" type="text/html" href="https://glossar.hs-augsburg.de/w/index.php?title=Trigger&amp;diff=12953"/>
		<updated>2009-07-10T09:18:25Z</updated>

		<summary type="html">&lt;p&gt;Bastian: /* Automatische Sicherung von Inhalten einer Tabelle in eine zweite Tabelle */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Definition=&lt;br /&gt;
In Datenbanken ist es neben der Speicherung und Abfrage von Daten auch möglich Logik selbst zu implementieren. Trigger gehören zum Bereich Logik und werden automatisch bei bestimmten Ereignissen, wie UPDATE, INSERT oder DELETE von Daten, ausgelöst.&lt;br /&gt;
&lt;br /&gt;
=Vorteile &amp;amp; Möglichkeiten=&lt;br /&gt;
#Oft ist es notwendig, bei einer Löschung eines Kunden oder Users weitere Löschvorgänge auszuführen&lt;br /&gt;
#Protokollerstellung bei einem Löschvorgang&lt;br /&gt;
#Sicherung von Daten in eine Sicherungstabelle (s. Beispiel)&lt;br /&gt;
#Auslösung von Vorgängen bei einem bestimmten Fall (z.B.: Mitgliederzahl über 100)&lt;br /&gt;
#Erfüllung von Bedingungen bei INSERT, UPDATE oder DELETE Befehlen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Implementierung von Triggern: Syntax=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Anlegen eines Triggers&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
CREATE TRIGGER triggername&lt;br /&gt;
[BEFORE | AFTER] [ INSERT | DELETE | UPDATE [OR ...] ]&lt;br /&gt;
	ON tablename FOR EACH ROW&lt;br /&gt;
	EXECUTE PROCEDURE functionname [(args)];&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Löschen eines Triggers&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
DROP TRIGGER triggername&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Beispiele=&lt;br /&gt;
==Automatische Sicherung von Inhalten einer Tabelle in eine zweite Tabelle==&lt;br /&gt;
&#039;&#039;&#039;1. Schritt: Erstellung einer Tabelle&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
CREATE TABLE tabelle1&lt;br /&gt;
(&lt;br /&gt;
	id		integer primary key,&lt;br /&gt;
	name      varchar(40) not null,&lt;br /&gt;
	telefon	varchar(10),&lt;br /&gt;
	umsatz	decimal(10,2)&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Erklärung&#039;&#039;: Anlegen der Tabelle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2. Schritt: Erstellung der Sicherungstabelle&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
CREATE TABLE tabelle1_backup&lt;br /&gt;
(&lt;br /&gt;
        id                            integer primary key,&lt;br /&gt;
	name                      varchar(40) not null,&lt;br /&gt;
	telefon                   varchar(10),&lt;br /&gt;
	umsatz                  decimal(10,2)&lt;br /&gt;
	user_changed       varchar(40),&lt;br /&gt;
	date_changed      date,&lt;br /&gt;
	operation              varchar(15)&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Erklärung&#039;&#039;: Anlegen der Sicherungstabelle mit den gleichen Spalten aus der Haupttabelle und zusätzlichen Spalten, die das Datum, die vorgenommene Änderung und User speichern.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. Schritt: Erstellung einer Funktion für die automatische Sicherung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
CREATE FUNCTION backup_tabelle1() RETURNS OPAQUE AS ‘&lt;br /&gt;
	BEGIN&lt;br /&gt;
		INSERT INTO tabelle1_backup&lt;br /&gt;
			VALUES&lt;br /&gt;
			(&lt;br /&gt;
				OLD.id,&lt;br /&gt;
				OLD.name,&lt;br /&gt;
				OLD.telefon,&lt;br /&gt;
				OLD.umsatz,&lt;br /&gt;
				CURRENT_USER,&lt;br /&gt;
				now(),&lt;br /&gt;
				TG_OP&lt;br /&gt;
			);&lt;br /&gt;
		RETURN NULL;&lt;br /&gt;
	END;&lt;br /&gt;
‘ LANGUAGE ‘plpgsql’&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Erklärung&#039;&#039;: Die Funktion backup_tabelle1() nimmt die nicht mehr aktuellen Werte aus tabelle1 und speichert sie in der tabelle1_backup als eine neue Zeile.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4. Erstellung des Triggers&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
CREATE TRIGGER backup_tabelle1&lt;br /&gt;
	AFTER DELETE OR UPDATE&lt;br /&gt;
	ON tabelle1&lt;br /&gt;
	FOR EACH ROW&lt;br /&gt;
		EXECUTE PROCEDURE backup_tabelle1();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Erklärung&#039;&#039;: Der Trigger wird erstellt und nach jedem DELETE oder UPDATE Befehl der auf die tabelle1 ausgeführt wird, ruft er die Funktion backup_tabelle1() auf,&lt;br /&gt;
&lt;br /&gt;
=Quellen=&lt;br /&gt;
&lt;br /&gt;
*[[Throll, M.; Bartosch, O. (2005): Einstieg in SQL]]&lt;br /&gt;
*[[Eisentraut, P. (2003): PostgreSQL - Das offizielle Handbuch]]&lt;br /&gt;
*[[Douglas, K.; Douglas S (2003): PostgreSQL]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:SQL]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;br /&gt;
[[Kategorie:GlossarWiki]]&lt;/div&gt;</summary>
		<author><name>Bastian</name></author>
	</entry>
	<entry>
		<id>https://glossar.hs-augsburg.de/w/index.php?title=Trigger&amp;diff=12952</id>
		<title>Trigger</title>
		<link rel="alternate" type="text/html" href="https://glossar.hs-augsburg.de/w/index.php?title=Trigger&amp;diff=12952"/>
		<updated>2009-07-10T09:17:15Z</updated>

		<summary type="html">&lt;p&gt;Bastian: /* Automatische Sicherung von Inhalten einer Tabelle in eine zweite Tabelle */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Definition=&lt;br /&gt;
In Datenbanken ist es neben der Speicherung und Abfrage von Daten auch möglich Logik selbst zu implementieren. Trigger gehören zum Bereich Logik und werden automatisch bei bestimmten Ereignissen, wie UPDATE, INSERT oder DELETE von Daten, ausgelöst.&lt;br /&gt;
&lt;br /&gt;
=Vorteile &amp;amp; Möglichkeiten=&lt;br /&gt;
#Oft ist es notwendig, bei einer Löschung eines Kunden oder Users weitere Löschvorgänge auszuführen&lt;br /&gt;
#Protokollerstellung bei einem Löschvorgang&lt;br /&gt;
#Sicherung von Daten in eine Sicherungstabelle (s. Beispiel)&lt;br /&gt;
#Auslösung von Vorgängen bei einem bestimmten Fall (z.B.: Mitgliederzahl über 100)&lt;br /&gt;
#Erfüllung von Bedingungen bei INSERT, UPDATE oder DELETE Befehlen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Implementierung von Triggern: Syntax=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Anlegen eines Triggers&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
CREATE TRIGGER triggername&lt;br /&gt;
[BEFORE | AFTER] [ INSERT | DELETE | UPDATE [OR ...] ]&lt;br /&gt;
	ON tablename FOR EACH ROW&lt;br /&gt;
	EXECUTE PROCEDURE functionname [(args)];&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Löschen eines Triggers&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
DROP TRIGGER triggername&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Beispiele=&lt;br /&gt;
==Automatische Sicherung von Inhalten einer Tabelle in eine zweite Tabelle==&lt;br /&gt;
&#039;&#039;&#039;1. Schritt: Erstellung einer Tabelle&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
CREATE TABLE tabelle1&lt;br /&gt;
(&lt;br /&gt;
	id		integer primary key,&lt;br /&gt;
	name      varchar(40) not null,&lt;br /&gt;
	telefon	varchar(10),&lt;br /&gt;
	umsatz	decimal(10,2)&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Erklärung&#039;&#039;: Anlegen der Tabelle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2. Schritt: Erstellung der Sicherungstabelle&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
CREATE TABLE tabelle1_backup&lt;br /&gt;
(&lt;br /&gt;
        id		                integer primary key,&lt;br /&gt;
	name                      varchar(40) not null,&lt;br /&gt;
	telefon	                varchar(10),&lt;br /&gt;
	umsatz	                decimal(10,2)&lt;br /&gt;
	user_changed	varchar(40),&lt;br /&gt;
	date_changed	date,&lt;br /&gt;
	operation		varchar(15)&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Erklärung&#039;&#039;: Anlegen der Sicherungstabelle mit den gleichen Spalten aus der Haupttabelle und zusätzlichen Spalten, die das Datum, die vorgenommene Änderung und User speichern.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. Schritt: Erstellung einer Funktion für die automatische Sicherung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
CREATE FUNCTION backup_tabelle1() RETURNS OPAQUE AS ‘&lt;br /&gt;
	BEGIN&lt;br /&gt;
		INSERT INTO tabelle1_backup&lt;br /&gt;
			VALUES&lt;br /&gt;
			(&lt;br /&gt;
				OLD.id,&lt;br /&gt;
				OLD.name,&lt;br /&gt;
				OLD.telefon,&lt;br /&gt;
				OLD.umsatz,&lt;br /&gt;
				CURRENT_USER,&lt;br /&gt;
				now(),&lt;br /&gt;
				TG_OP&lt;br /&gt;
			);&lt;br /&gt;
		RETURN NULL;&lt;br /&gt;
	END;&lt;br /&gt;
‘ LANGUAGE ‘plpgsql’&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Erklärung&#039;&#039;: Die Funktion backup_tabelle1() nimmt die nicht mehr aktuellen Werte aus tabelle1 und speichert sie in der tabelle1_backup als eine neue Zeile.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4. Erstellung des Triggers&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
CREATE TRIGGER backup_tabelle1&lt;br /&gt;
	AFTER DELETE OR UPDATE&lt;br /&gt;
	ON tabelle1&lt;br /&gt;
	FOR EACH ROW&lt;br /&gt;
		EXECUTE PROCEDURE backup_tabelle1();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Erklärung&#039;&#039;: Der Trigger wird erstellt und nach jedem DELETE oder UPDATE Befehl der auf die tabelle1 ausgeführt wird, ruft er die Funktion backup_tabelle1() auf,&lt;br /&gt;
&lt;br /&gt;
=Quellen=&lt;br /&gt;
&lt;br /&gt;
*[[Throll, M.; Bartosch, O. (2005): Einstieg in SQL]]&lt;br /&gt;
*[[Eisentraut, P. (2003): PostgreSQL - Das offizielle Handbuch]]&lt;br /&gt;
*[[Douglas, K.; Douglas S (2003): PostgreSQL]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:SQL]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;br /&gt;
[[Kategorie:GlossarWiki]]&lt;/div&gt;</summary>
		<author><name>Bastian</name></author>
	</entry>
	<entry>
		<id>https://glossar.hs-augsburg.de/w/index.php?title=Trigger&amp;diff=12951</id>
		<title>Trigger</title>
		<link rel="alternate" type="text/html" href="https://glossar.hs-augsburg.de/w/index.php?title=Trigger&amp;diff=12951"/>
		<updated>2009-07-10T09:16:14Z</updated>

		<summary type="html">&lt;p&gt;Bastian: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Definition=&lt;br /&gt;
In Datenbanken ist es neben der Speicherung und Abfrage von Daten auch möglich Logik selbst zu implementieren. Trigger gehören zum Bereich Logik und werden automatisch bei bestimmten Ereignissen, wie UPDATE, INSERT oder DELETE von Daten, ausgelöst.&lt;br /&gt;
&lt;br /&gt;
=Vorteile &amp;amp; Möglichkeiten=&lt;br /&gt;
#Oft ist es notwendig, bei einer Löschung eines Kunden oder Users weitere Löschvorgänge auszuführen&lt;br /&gt;
#Protokollerstellung bei einem Löschvorgang&lt;br /&gt;
#Sicherung von Daten in eine Sicherungstabelle (s. Beispiel)&lt;br /&gt;
#Auslösung von Vorgängen bei einem bestimmten Fall (z.B.: Mitgliederzahl über 100)&lt;br /&gt;
#Erfüllung von Bedingungen bei INSERT, UPDATE oder DELETE Befehlen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Implementierung von Triggern: Syntax=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Anlegen eines Triggers&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
CREATE TRIGGER triggername&lt;br /&gt;
[BEFORE | AFTER] [ INSERT | DELETE | UPDATE [OR ...] ]&lt;br /&gt;
	ON tablename FOR EACH ROW&lt;br /&gt;
	EXECUTE PROCEDURE functionname [(args)];&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Löschen eines Triggers&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
DROP TRIGGER triggername&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Beispiele=&lt;br /&gt;
==Automatische Sicherung von Inhalten einer Tabelle in eine zweite Tabelle==&lt;br /&gt;
&#039;&#039;&#039;1. Schritt: Erstellung einer Tabelle&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
CREATE TABLE tabelle1&lt;br /&gt;
(&lt;br /&gt;
	id		integer primary key,&lt;br /&gt;
	name      varchar(40) not null,&lt;br /&gt;
	telefon	varchar(10),&lt;br /&gt;
	umsatz	decimal(10,2)&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Erklärung&#039;&#039;: Anlegen der Tabelle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2. Schritt: Erstellung der Sicherungstabelle&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
CREATE TABLE tabelle1_backup&lt;br /&gt;
(&lt;br /&gt;
        id		                integer primary key,&lt;br /&gt;
	name                      varchar(40) not null,&lt;br /&gt;
	telefon	                varchar(10),&lt;br /&gt;
	umsatz	                decimal(10,2)&lt;br /&gt;
	user_changed	varchar(40),&lt;br /&gt;
	date_changed	date,&lt;br /&gt;
	operation		varchar(15)&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Erklärung&#039;&#039;: Anlegen der Sicherungstabelle mit den gleichen Spalten aus der Haupttabelle und zusätzlichen SPalten, die das Datum, die vorgenommene Änderung und User speichern.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. Schritt: Erstellung einer Funktion für die automatische Sicherung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
CREATE FUNCTION backup_tabelle1() RETURNS OPAQUE AS ‘&lt;br /&gt;
	BEGIN&lt;br /&gt;
		INSERT INTO tabelle1_backup&lt;br /&gt;
			VALUES&lt;br /&gt;
			(&lt;br /&gt;
				OLD.id,&lt;br /&gt;
				OLD.name,&lt;br /&gt;
				OLD.telefon,&lt;br /&gt;
				OLD.umsatz,&lt;br /&gt;
				CURRENT_USER,&lt;br /&gt;
				now(),&lt;br /&gt;
				TG_OP&lt;br /&gt;
			);&lt;br /&gt;
		RETURN NULL;&lt;br /&gt;
	END;&lt;br /&gt;
‘ LANGUAGE ‘plpgsql’&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Erklärung&#039;&#039;: Die Funktion backup_tabelle1() nimmt die nicht mehr aktuellen Werte aus tabelle1 und speichert sie in der tabelle1_backup als eine neue Zeile.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4. Erstellung des Triggers&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
CREATE TRIGGER backup_tabelle1&lt;br /&gt;
	AFTER DELETE OR UPDATE&lt;br /&gt;
	ON tabelle1&lt;br /&gt;
	FOR EACH ROW&lt;br /&gt;
		EXECUTE PROCEDURE backup_tabelle1();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Erklärung&#039;&#039;: Der Trigger wird erstellt und nach jedem DELETE oder UPDATE Befehl der auf die tabelle1 ausgeführt wird, ruft er die Funktion backup_tabelle1() auf, &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Quellen=&lt;br /&gt;
&lt;br /&gt;
*[[Throll, M.; Bartosch, O. (2005): Einstieg in SQL]]&lt;br /&gt;
*[[Eisentraut, P. (2003): PostgreSQL - Das offizielle Handbuch]]&lt;br /&gt;
*[[Douglas, K.; Douglas S (2003): PostgreSQL]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:SQL]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;br /&gt;
[[Kategorie:GlossarWiki]]&lt;/div&gt;</summary>
		<author><name>Bastian</name></author>
	</entry>
	<entry>
		<id>https://glossar.hs-augsburg.de/w/index.php?title=Trigger&amp;diff=12950</id>
		<title>Trigger</title>
		<link rel="alternate" type="text/html" href="https://glossar.hs-augsburg.de/w/index.php?title=Trigger&amp;diff=12950"/>
		<updated>2009-07-10T09:11:22Z</updated>

		<summary type="html">&lt;p&gt;Bastian: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{In Bearbeitung}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Definition=&lt;br /&gt;
In Datenbanken ist es neben der Speicherung und Abfrage von Daten auch möglich Logik selbst zu implementieren. Trigger gehören zum Bereich Logik und werden automatisch bei bestimmten Ereignissen, wie UPDATE, INSERT oder DELETE von Daten, ausgelöst.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Vorteile=&lt;br /&gt;
#Oft ist es notwendig, bei einer Löschung eines Kunden oder Users weitere Löschvorgänge auszuführen, die möglicherweise noch im System verbleiben könnten.&lt;br /&gt;
#Protokollerstellung bei einem Löschvorgang&lt;br /&gt;
#Auslösung von Vorgängen bei einem bestimmten Fall (z.B.: Mitgliederzahl über 100)&lt;br /&gt;
&lt;br /&gt;
=Implementierung von Triggern: Syntax=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Anlegen eines Triggers&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
CREATE TRIGGER triggername&lt;br /&gt;
[BEFORE | AFTER] [ INSERT | DELETE | UPDATE [OR ...] ]&lt;br /&gt;
	ON tablename FOR EACH ROW&lt;br /&gt;
	EXECUTE PROCEDURE functionname [(args)];&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Löschen eines Triggers&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
DROP TRIGGER triggername&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Beispiele=&lt;br /&gt;
==Automatische Sicherung von Inhalten einer Tabelle in eine zweite Tabelle==&lt;br /&gt;
&#039;&#039;&#039;1. Schritt: Erstellung einer Tabelle&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
CREATE TABLE tabelle1&lt;br /&gt;
(&lt;br /&gt;
	id		integer primary key,&lt;br /&gt;
	name      varchar(40) not null,&lt;br /&gt;
	telefon	varchar(10),&lt;br /&gt;
	umsatz	decimal(10,2)&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Erklärung&#039;&#039;: Anlegen der Tabelle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2. Schritt: Erstellung der Sicherungstabelle&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
CREATE TABLE tabelle1_backup&lt;br /&gt;
(&lt;br /&gt;
        id		                integer primary key,&lt;br /&gt;
	name                      varchar(40) not null,&lt;br /&gt;
	telefon	                varchar(10),&lt;br /&gt;
	umsatz	                decimal(10,2)&lt;br /&gt;
	user_changed	varchar(40),&lt;br /&gt;
	date_changed	date,&lt;br /&gt;
	operation		varchar(15)&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Erklärung&#039;&#039;: Anlegen der Sicherungstabelle mit den gleichen Spalten aus der Haupttabelle und zusätzlichen SPalten, die das Datum, die vorgenommene Änderung und User speichern.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. Schritt: Erstellung einer Funktion für die automatische Sicherung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
CREATE FUNCTION backup_tabelle1() RETURNS OPAQUE AS ‘&lt;br /&gt;
	BEGIN&lt;br /&gt;
		INSERT INTO tabelle1_backup&lt;br /&gt;
			VALUES&lt;br /&gt;
			(&lt;br /&gt;
				OLD.id,&lt;br /&gt;
				OLD.name,&lt;br /&gt;
				OLD.telefon,&lt;br /&gt;
				OLD.umsatz,&lt;br /&gt;
				CURRENT_USER,&lt;br /&gt;
				now(),&lt;br /&gt;
				TG_OP&lt;br /&gt;
			);&lt;br /&gt;
		RETURN NULL;&lt;br /&gt;
	END;&lt;br /&gt;
‘ LANGUAGE ‘plpgsql’&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Erklärung&#039;&#039;: Die Funktion backup_tabelle1() nimmt die nicht mehr aktuellen Werte aus tabelle1 und speichert sie in der tabelle1_backup als eine neue Zeile.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4. Erstellung des Triggers&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
CREATE TRIGGER backup_tabelle1&lt;br /&gt;
	AFTER DELETE OR UPDATE&lt;br /&gt;
	ON tabelle1&lt;br /&gt;
	FOR EACH ROW&lt;br /&gt;
		EXECUTE PROCEDURE backup_tabelle1();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Erklärung&#039;&#039;: Der Trigger wird erstellt und nach jedem DELETE oder UPDATE Befehl der auf die tabelle1 ausgeführt wird, ruft er die Funktion backup_tabelle1() auf, &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Quellen=&lt;br /&gt;
&lt;br /&gt;
*[[Throll, M.; Bartosch, O. (2005): Einstieg in SQL]]&lt;br /&gt;
*[[Eisentraut, P. (2003): PostgreSQL - Das offizielle Handbuch]]&lt;br /&gt;
*[[Douglas, K.; Douglas S (2003): PostgreSQL]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:SQL]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;br /&gt;
[[Kategorie:GlossarWiki]]&lt;/div&gt;</summary>
		<author><name>Bastian</name></author>
	</entry>
	<entry>
		<id>https://glossar.hs-augsburg.de/w/index.php?title=Trigger&amp;diff=12939</id>
		<title>Trigger</title>
		<link rel="alternate" type="text/html" href="https://glossar.hs-augsburg.de/w/index.php?title=Trigger&amp;diff=12939"/>
		<updated>2009-07-10T08:28:00Z</updated>

		<summary type="html">&lt;p&gt;Bastian: /* Implementierung von Triggern: Syntax */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{In Bearbeitung}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Definition=&lt;br /&gt;
In Datenbanken ist es neben der Speicherung und Abfrage von Daten auch möglich Logik selbst zu implementieren. Trigger gehören zum Bereich Logik und werden automatisch bei bestimmten Ereignissen, wie UPDATE, INSERT oder DELETE von Daten, ausgelöst.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Vorteile=&lt;br /&gt;
- Oft ist es notwendig, bei einer Löschung eines Kunden oder Users weitere Löschvorgänge auszuführen, die möglicherweise noch im System verbleiben könnten.&lt;br /&gt;
- Protokollerstellung bei einem Löschvorgang&lt;br /&gt;
- Bestimmte Hinweise oder Vorgänge anzeigen bzw. auszuführen&lt;br /&gt;
&lt;br /&gt;
=Implementierung von Triggern: Syntax=&lt;br /&gt;
vollständiger Syntax:&lt;br /&gt;
&lt;br /&gt;
CREATE TRIGGER trigger-name&lt;br /&gt;
[BEFORE | AFTER] [ INSERT | DELETE | UPDATE [OR ...] ]&lt;br /&gt;
	ON table-name FOR EACH ROW&lt;br /&gt;
	EXECUTE PROCEDURE function-name [(args)];&lt;br /&gt;
&lt;br /&gt;
=Beispiele=&lt;br /&gt;
==Automatisches Füllen von Datenbankfelder==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Automatischen INSERT anhand einer bestimmten Anzahl==&lt;br /&gt;
Auflistung der Beispiele mit Code&lt;br /&gt;
&lt;br /&gt;
=Quellen=&lt;br /&gt;
&lt;br /&gt;
*[[Throll, M.; Bartosch, O. (2005): Einstieg in SQL]]&lt;br /&gt;
*[[Eisentraut, P. (2003): PostgreSQL - Das offizielle Handbuch]]&lt;br /&gt;
*[[Douglas, K.; Douglas S (2003): PostgreSQL]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:PostgreSQL]]&lt;br /&gt;
[[Kategorie:SQL]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;br /&gt;
[[Kategorie:GlossarWiki]]&lt;/div&gt;</summary>
		<author><name>Bastian</name></author>
	</entry>
	<entry>
		<id>https://glossar.hs-augsburg.de/w/index.php?title=Trigger&amp;diff=12938</id>
		<title>Trigger</title>
		<link rel="alternate" type="text/html" href="https://glossar.hs-augsburg.de/w/index.php?title=Trigger&amp;diff=12938"/>
		<updated>2009-07-10T08:26:44Z</updated>

		<summary type="html">&lt;p&gt;Bastian: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{In Bearbeitung}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Definition=&lt;br /&gt;
In Datenbanken ist es neben der Speicherung und Abfrage von Daten auch möglich Logik selbst zu implementieren. Trigger gehören zum Bereich Logik und werden automatisch bei bestimmten Ereignissen, wie UPDATE, INSERT oder DELETE von Daten, ausgelöst.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Vorteile=&lt;br /&gt;
- Oft ist es notwendig, bei einer Löschung eines Kunden oder Users weitere Löschvorgänge auszuführen, die möglicherweise noch im System verbleiben könnten.&lt;br /&gt;
- Protokollerstellung bei einem Löschvorgang&lt;br /&gt;
- Bestimmte Hinweise oder Vorgänge anzeigen bzw. auszuführen&lt;br /&gt;
&lt;br /&gt;
=Implementierung von Triggern: Syntax=&lt;br /&gt;
CREATE TRIGGER trigger-name&lt;br /&gt;
[BEFORE | AFTER] [ INSERT | DELETE | UPDATE [OR ...] ]&lt;br /&gt;
	ON table-name FOR EACH ROW&lt;br /&gt;
	EXECUTE PROCEDURE function-name [(args)];&lt;br /&gt;
&lt;br /&gt;
=Beispiele=&lt;br /&gt;
==Automatisches Füllen von Datenbankfelder==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Automatischen INSERT anhand einer bestimmten Anzahl==&lt;br /&gt;
Auflistung der Beispiele mit Code&lt;br /&gt;
&lt;br /&gt;
=Quellen=&lt;br /&gt;
&lt;br /&gt;
*[[Throll, M.; Bartosch, O. (2005): Einstieg in SQL]]&lt;br /&gt;
*[[Eisentraut, P. (2003): PostgreSQL - Das offizielle Handbuch]]&lt;br /&gt;
*[[Douglas, K.; Douglas S (2003): PostgreSQL]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:PostgreSQL]]&lt;br /&gt;
[[Kategorie:SQL]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;br /&gt;
[[Kategorie:GlossarWiki]]&lt;/div&gt;</summary>
		<author><name>Bastian</name></author>
	</entry>
	<entry>
		<id>https://glossar.hs-augsburg.de/w/index.php?title=Douglas,_K.;_Douglas_S_(2003):_PostgreSQL&amp;diff=12937</id>
		<title>Douglas, K.; Douglas S (2003): PostgreSQL</title>
		<link rel="alternate" type="text/html" href="https://glossar.hs-augsburg.de/w/index.php?title=Douglas,_K.;_Douglas_S_(2003):_PostgreSQL&amp;diff=12937"/>
		<updated>2009-07-10T08:23:26Z</updated>

		<summary type="html">&lt;p&gt;Bastian: Die Seite wurde neu angelegt: {{Quelle:Buch |   key       = E PostgreSQL |   authors   = Korry Douglas | Susan Douglas   title     = PostgreSQL |   subtitle  = |   editors   = |   edition   = |   vo...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Quelle:Buch |&lt;br /&gt;
  key       = E PostgreSQL |&lt;br /&gt;
  authors   = Korry Douglas | Susan Douglas&lt;br /&gt;
  title     = PostgreSQL |&lt;br /&gt;
  subtitle  = |&lt;br /&gt;
  editors   = |&lt;br /&gt;
  edition   = |&lt;br /&gt;
  volume    = |&lt;br /&gt;
  series    = |&lt;br /&gt;
  number    = |&lt;br /&gt;
  month     = |&lt;br /&gt;
  year      = 2003|&lt;br /&gt;
  publisher = Sams Publishing |&lt;br /&gt;
  address   = |&lt;br /&gt;
  isbn      = 0-7357-1257-3 |&lt;br /&gt;
  url       = |&lt;br /&gt;
  shelfmark   = ST 271 S70 D73 +1 ([[Zentralbibliothek]])  |&lt;br /&gt;
  annotations = &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Quelle:Datenbank]]&lt;/div&gt;</summary>
		<author><name>Bastian</name></author>
	</entry>
	<entry>
		<id>https://glossar.hs-augsburg.de/w/index.php?title=Eisentraut,_P._(2003):_PostgreSQL_-_Das_offizielle_Handbuch&amp;diff=12935</id>
		<title>Eisentraut, P. (2003): PostgreSQL - Das offizielle Handbuch</title>
		<link rel="alternate" type="text/html" href="https://glossar.hs-augsburg.de/w/index.php?title=Eisentraut,_P._(2003):_PostgreSQL_-_Das_offizielle_Handbuch&amp;diff=12935"/>
		<updated>2009-07-10T08:20:57Z</updated>

		<summary type="html">&lt;p&gt;Bastian: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Quelle:Buch |&lt;br /&gt;
  key       = PostgreSQL - Das offizielle Handbuch |&lt;br /&gt;
  authors   = Peter Eisentraut |&lt;br /&gt;
  title     = PostgreSQL - Das offizielle Handbuch|&lt;br /&gt;
  subtitle  = |&lt;br /&gt;
  editors   = |&lt;br /&gt;
  edition   = |&lt;br /&gt;
  volume    = |&lt;br /&gt;
  series    = |&lt;br /&gt;
  number    = |&lt;br /&gt;
  month     = |&lt;br /&gt;
  year      = 2003|&lt;br /&gt;
  publisher = verlag moderne industrie|&lt;br /&gt;
  address   = |&lt;br /&gt;
  isbn      = 3-8266-1337-6 |&lt;br /&gt;
  url       = |&lt;br /&gt;
  shelfmark   = |&lt;br /&gt;
  annotations = [http://www.postgresql.org/files/documentation/books/pghandbuch/html/]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Quelle:Datenbank]]&lt;/div&gt;</summary>
		<author><name>Bastian</name></author>
	</entry>
	<entry>
		<id>https://glossar.hs-augsburg.de/w/index.php?title=Eisentraut,_P._(2003):_PostgreSQL_-_Das_offizielle_Handbuch&amp;diff=12933</id>
		<title>Eisentraut, P. (2003): PostgreSQL - Das offizielle Handbuch</title>
		<link rel="alternate" type="text/html" href="https://glossar.hs-augsburg.de/w/index.php?title=Eisentraut,_P._(2003):_PostgreSQL_-_Das_offizielle_Handbuch&amp;diff=12933"/>
		<updated>2009-07-10T08:20:33Z</updated>

		<summary type="html">&lt;p&gt;Bastian: Die Seite wurde neu angelegt: {{Quelle:Buch |   key       = PostgreSQL - Das offizielle Handbuch |   authors   = Peter Eisentraut   title     = PostgreSQL - Das offizielle Handbuch|   subtitle  = | ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Quelle:Buch |&lt;br /&gt;
  key       = PostgreSQL - Das offizielle Handbuch |&lt;br /&gt;
  authors   = Peter Eisentraut&lt;br /&gt;
  title     = PostgreSQL - Das offizielle Handbuch|&lt;br /&gt;
  subtitle  = |&lt;br /&gt;
  editors   = |&lt;br /&gt;
  edition   = |&lt;br /&gt;
  volume    = |&lt;br /&gt;
  series    = |&lt;br /&gt;
  number    = |&lt;br /&gt;
  month     = |&lt;br /&gt;
  year      = 2003|&lt;br /&gt;
  publisher = verlag moderne industrie|&lt;br /&gt;
  address   = |&lt;br /&gt;
  isbn      = 3-8266-1337-6 |&lt;br /&gt;
  url       = |&lt;br /&gt;
  shelfmark   = |&lt;br /&gt;
  annotations = [http://www.postgresql.org/files/documentation/books/pghandbuch/html/]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Quelle:Datenbank]]&lt;/div&gt;</summary>
		<author><name>Bastian</name></author>
	</entry>
	<entry>
		<id>https://glossar.hs-augsburg.de/w/index.php?title=Trigger&amp;diff=12932</id>
		<title>Trigger</title>
		<link rel="alternate" type="text/html" href="https://glossar.hs-augsburg.de/w/index.php?title=Trigger&amp;diff=12932"/>
		<updated>2009-07-10T08:18:09Z</updated>

		<summary type="html">&lt;p&gt;Bastian: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{In Bearbeitung}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Definition=&lt;br /&gt;
In Datenbanken ist es neben der Speicherung und Abfrage von Daten auch möglich Logik selbst zu implementieren. Trigger gehören zum Bereich Logik und werden automatisch bei bestimmten Ereignissen, wie Update oder Löschung von Daten, ausgelöst.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Vorteile=&lt;br /&gt;
- Oft ist es notwendig, bei einer Löschung eines Kunden oder Users weitere Löschvorgänge auszuführen, die möglicherweise noch im System verbleiben könnten.&lt;br /&gt;
- Protokollerstellung bei einem Löschvorgang&lt;br /&gt;
- Bestimmte Hinweise oder Vorgänge anzeigen bzw. auszuführen&lt;br /&gt;
&lt;br /&gt;
=Implementierung von Triggern=&lt;br /&gt;
==Bemerkung 1==&lt;br /&gt;
Zu einer Definition kann man viele sinnvolle Bemerkungen angeben.&lt;br /&gt;
&lt;br /&gt;
=Beispiele=&lt;br /&gt;
==Automatisches Füllen von Datenbankfelder==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Automatischen INSERT anhand einer bestimmten Anzahl==&lt;br /&gt;
Auflistung der Beispiele mit Code&lt;br /&gt;
&lt;br /&gt;
=Quellen=&lt;br /&gt;
&lt;br /&gt;
*[[Throll, M.; Bartosch, O. (2005): Einstieg in SQL]]&lt;br /&gt;
*[[Eisentraut, P. (2003): PostgreSQL - Das offizielle Handbuch]]&lt;br /&gt;
*[[Douglas, K.; Douglas S (2003): PostgreSQL]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:SQL]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;br /&gt;
[[Kategorie:GlossarWiki]]&lt;/div&gt;</summary>
		<author><name>Bastian</name></author>
	</entry>
	<entry>
		<id>https://glossar.hs-augsburg.de/w/index.php?title=Trigger&amp;diff=12909</id>
		<title>Trigger</title>
		<link rel="alternate" type="text/html" href="https://glossar.hs-augsburg.de/w/index.php?title=Trigger&amp;diff=12909"/>
		<updated>2009-07-07T18:12:42Z</updated>

		<summary type="html">&lt;p&gt;Bastian: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{In Bearbeitung}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Definition=&lt;br /&gt;
In Datenbanken ist es neben der Speicherung und Abfrage von Daten auch möglich Logik selbst zu implementieren. Trigger gehören zum Bereich Logik und werden automatisch bei bestimmten Ereignissen, wie Update oder Löschung von Daten, ausgelöst.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Vorteile=&lt;br /&gt;
- Oft ist es notwendig, bei einer Löschung eines Kunden oder Users weitere Löschvorgänge auszuführen, die möglicherweise noch im System verbleiben könnten.&lt;br /&gt;
- Protokollerstellung bei einem Löschvorgang&lt;br /&gt;
- Bestimmte Hinweise oder Vorgänge anzeigen bzw. auszuführen&lt;br /&gt;
&lt;br /&gt;
=Implementierung von Triggern=&lt;br /&gt;
==Bemerkung 1==&lt;br /&gt;
Zu einer Definition kann man viele sinnvolle Bemerkungen angeben.&lt;br /&gt;
&lt;br /&gt;
=Beispiele=&lt;br /&gt;
==Automatisches Füllen von Datenbankfelder==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Automatischen INSERT anhand einer bestimmten Anzahl==&lt;br /&gt;
Auflistung der Beispiele mit Code&lt;br /&gt;
&lt;br /&gt;
=Quellen=&lt;br /&gt;
&lt;br /&gt;
*[[Throll, M.; Bartosch, O. (2005): Einstieg in SQL]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Auch externe Quellen können zitiert werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Siehe auch=&lt;br /&gt;
Zu guter letzt kann Sekundärliteratur angegeben werden, die zwar im Artikel nicht direkt verwendet, aber doch irgendwie interessant ist.&lt;br /&gt;
Außerdem sollten eine oder mehrere Kategorien angegeben werden sowie ein Verweis auf den zugehörigen englischen Artikel&lt;br /&gt;
in [[GlossaryWiki:Main Page|GlossaryWiki]], auch wenn es diesen noch gar nicht gibt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Glossar]]&lt;br /&gt;
[[Kategorie:GlossarWiki]]&lt;br /&gt;
[[en:GlossaryWiki:Sample Page]]&lt;/div&gt;</summary>
		<author><name>Bastian</name></author>
	</entry>
	<entry>
		<id>https://glossar.hs-augsburg.de/w/index.php?title=Throll,_M.;_Bartosch,_O._(2007):_Einstieg_in_SQL&amp;diff=12908</id>
		<title>Throll, M.; Bartosch, O. (2007): Einstieg in SQL</title>
		<link rel="alternate" type="text/html" href="https://glossar.hs-augsburg.de/w/index.php?title=Throll,_M.;_Bartosch,_O._(2007):_Einstieg_in_SQL&amp;diff=12908"/>
		<updated>2009-07-07T11:56:18Z</updated>

		<summary type="html">&lt;p&gt;Bastian: Die Seite wurde neu angelegt: {{Quelle:Buch |   key       = Einstieg in SQL (2007) |   authors   = Marcus Throll | Oliver Bartosch   title     = Einstieg in SQL|   subtitle  = Verstehen, einsetzen, ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Quelle:Buch |&lt;br /&gt;
  key       = Einstieg in SQL (2007) |&lt;br /&gt;
  authors   = Marcus Throll | Oliver Bartosch&lt;br /&gt;
  title     = Einstieg in SQL|&lt;br /&gt;
  subtitle  = Verstehen, einsetzen, nachschlagen|&lt;br /&gt;
  editors   = |&lt;br /&gt;
  edition   = |&lt;br /&gt;
  volume    = |&lt;br /&gt;
  series    = |&lt;br /&gt;
  number    = |&lt;br /&gt;
  month     = Jul|&lt;br /&gt;
  year      = 2007|&lt;br /&gt;
  publisher = [http://www.galileocomputing.de/katalog/buecher/titel/gp/titelID-671?GalileoSession=59215279A3Bec9ZH24o Galileo Press]|&lt;br /&gt;
  address   = |&lt;br /&gt;
  isbn      = 978-3-8362-1039-3 |&lt;br /&gt;
  url       = |&lt;br /&gt;
  shelfmark   = ST 271 S70 T53 E3(2) + 3 ([[Zentralbibliothek]])  |&lt;br /&gt;
  annotations = &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Quelle:Datenbank]]&lt;/div&gt;</summary>
		<author><name>Bastian</name></author>
	</entry>
	<entry>
		<id>https://glossar.hs-augsburg.de/w/index.php?title=Trigger&amp;diff=12907</id>
		<title>Trigger</title>
		<link rel="alternate" type="text/html" href="https://glossar.hs-augsburg.de/w/index.php?title=Trigger&amp;diff=12907"/>
		<updated>2009-07-07T11:50:30Z</updated>

		<summary type="html">&lt;p&gt;Bastian: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{In Bearbeitung}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Definition=&lt;br /&gt;
In Datenbanken ist es neben der Speicherung und Abfrage von Daten auch möglich Logik selbst zu implementieren. Trigger gehören zum Bereich Logik und werden automatisch bei bestimmten Ereignissen, wie Update oder Löschung von Daten, ausgelöst.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Vorteile=&lt;br /&gt;
- Oft ist es notwendig, bei einer Löschung eines Kunden oder Users weitere Löschvorgänge auszuführen, die möglicherweise noch im System verbleiben könnten.&lt;br /&gt;
- Protokollerstellung bei einem Löschvorgang&lt;br /&gt;
- Bestimmte Hinweise oder Vorgänge anzeigen bzw. auszuführen&lt;br /&gt;
&lt;br /&gt;
=Implementierung von Triggern=&lt;br /&gt;
==Bemerkung 1==&lt;br /&gt;
Zu einer Definition kann man viele sinnvolle Bemerkungen angeben.&lt;br /&gt;
&lt;br /&gt;
=Beispiele=&lt;br /&gt;
==Automatisches Füllen von Datenbankfelder==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Automatischen INSERT anhand einer bestimmten Anzahl==&lt;br /&gt;
Beispiele machen sich auch nicht schlecht.&lt;br /&gt;
&lt;br /&gt;
=Quellen=&lt;br /&gt;
&lt;br /&gt;
*[[Throll, M.; Bartosch, O. (2005): Einstieg in SQL]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Auch externe Quellen können zitiert werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Siehe auch=&lt;br /&gt;
Zu guter letzt kann Sekundärliteratur angegeben werden, die zwar im Artikel nicht direkt verwendet, aber doch irgendwie interessant ist.&lt;br /&gt;
Außerdem sollten eine oder mehrere Kategorien angegeben werden sowie ein Verweis auf den zugehörigen englischen Artikel&lt;br /&gt;
in [[GlossaryWiki:Main Page|GlossaryWiki]], auch wenn es diesen noch gar nicht gibt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Glossar]]&lt;br /&gt;
[[Kategorie:GlossarWiki]]&lt;br /&gt;
[[en:GlossaryWiki:Sample Page]]&lt;/div&gt;</summary>
		<author><name>Bastian</name></author>
	</entry>
	<entry>
		<id>https://glossar.hs-augsburg.de/w/index.php?title=Trigger&amp;diff=12906</id>
		<title>Trigger</title>
		<link rel="alternate" type="text/html" href="https://glossar.hs-augsburg.de/w/index.php?title=Trigger&amp;diff=12906"/>
		<updated>2009-07-07T11:49:36Z</updated>

		<summary type="html">&lt;p&gt;Bastian: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{In Bearbeitung}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Definition=&lt;br /&gt;
In Datenbanken ist es neben der Speicherung und Abfrage von Daten auch möglich Logik selbst zu implementieren. Trigger gehören zum Bereich Logik und werden automatisch bei bestimmten Ereignissen, wie Update oder Löschung von Daten, ausgelöst.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Vorteile=&lt;br /&gt;
- Oft ist es notwendig, bei einer Löschung eines Kunden oder Users weitere Löschvorgänge auszuführen, die möglicherweise noch im System verbleiben könnten.&lt;br /&gt;
- Protokollerstellung bei einem Löschvorgang&lt;br /&gt;
- Bestimmte Hinweise oder Vorgänge anzeigen bzw. auszuführen&lt;br /&gt;
&lt;br /&gt;
=Implementierung von Triggern=&lt;br /&gt;
==Bemerkung 1==&lt;br /&gt;
Zu einer Definition kann man viele sinnvolle Bemerkungen angeben.&lt;br /&gt;
&lt;br /&gt;
=Beispiele=&lt;br /&gt;
==Automatisches Füllen von Datenbankfelder==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Automatischen INSERT anhand einer bestimmten Anzahl==&lt;br /&gt;
Beispiele machen sich auch nicht schlecht.&lt;br /&gt;
&lt;br /&gt;
=Quellen=&lt;br /&gt;
&lt;br /&gt;
*[[Throll, M.; Bartosch, O. (2005): Einstieg in SQL]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Auch externe Quellen können zitiert werden.&lt;br /&gt;
&lt;br /&gt;
*[http://kowa.fh-augsburg.de Kowarschicks gesammelte Werke] (besser als eigenes Quellen-Dokument, basierend auf der [[Vorlage:Quelle:URL]])&lt;br /&gt;
*[http://de.wikipedia.org/ Wikipedia] (&#039;&#039;&#039;so nicht&#039;&#039;&#039;, da zu allgemein und außerdem nicht der Wikipedia-Verweis benutzt wurde)&lt;br /&gt;
*[[Wikipedia:Vorlage (Datenverarbeitung)]] (sondern eher so, aber noch besser auch als eigenes Quellen-Dokument)&lt;br /&gt;
&lt;br /&gt;
=Siehe auch=&lt;br /&gt;
Zu guter letzt kann Sekundärliteratur angegeben werden, die zwar im Artikel nicht direkt verwendet, aber doch irgendwie interessant ist.&lt;br /&gt;
Außerdem sollten eine oder mehrere Kategorien angegeben werden sowie ein Verweis auf den zugehörigen englischen Artikel&lt;br /&gt;
in [[GlossaryWiki:Main Page|GlossaryWiki]], auch wenn es diesen noch gar nicht gibt.&lt;br /&gt;
&lt;br /&gt;
*[[Theory of Constraints (Quellen)]] (eine ganze Sammlung von Quellen in einem Quellen-Dokument)&lt;br /&gt;
*[[Wikipedia:Wikipedia:Formatvorlagen|Wikipedia: Formatvorlagen]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Glossar]]&lt;br /&gt;
[[Kategorie:GlossarWiki]]&lt;br /&gt;
[[en:GlossaryWiki:Sample Page]]&lt;/div&gt;</summary>
		<author><name>Bastian</name></author>
	</entry>
	<entry>
		<id>https://glossar.hs-augsburg.de/w/index.php?title=Trigger&amp;diff=12905</id>
		<title>Trigger</title>
		<link rel="alternate" type="text/html" href="https://glossar.hs-augsburg.de/w/index.php?title=Trigger&amp;diff=12905"/>
		<updated>2009-07-07T11:38:43Z</updated>

		<summary type="html">&lt;p&gt;Bastian: Die Seite wurde neu angelegt: {{In Bearbeitung}}    =Definition= In Datenbanken ist es neben der Speicherung und Abfrage von Daten auch möglich Logik selbst zu implementieren. Trigger gehören zum ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{In Bearbeitung}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Definition=&lt;br /&gt;
In Datenbanken ist es neben der Speicherung und Abfrage von Daten auch möglich Logik selbst zu implementieren. Trigger gehören zum Bereich Logik und werden automatisch bei bestimmten Ereignissen, wie Update oder Löschung von Daten, ausgelöst.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Vorteile=&lt;br /&gt;
Weitere, alternative Definitionen sind möglich.&lt;br /&gt;
&lt;br /&gt;
=Bemerkungen=&lt;br /&gt;
==Bemerkung 1==&lt;br /&gt;
Zu einer Definition kann man viele sinnvolle Bemerkungen angeben.&lt;br /&gt;
&lt;br /&gt;
==Bemerkung 2==&lt;br /&gt;
Natürlich sollte eine Bemerkung einen sinnvollen Titel erhalten und nicht einfach &#039;&#039;Bemerkung 1&#039;&#039;, &#039;&#039;Bemerkung 2&#039;&#039; etc.&lt;br /&gt;
genannt werden.&lt;br /&gt;
&lt;br /&gt;
=Beispiele=&lt;br /&gt;
Beispiele machen sich auch nicht schlecht.&lt;br /&gt;
&lt;br /&gt;
=Quellen=&lt;br /&gt;
Wenn die Definitionen und/oder die Anmerkungen nicht von einem selbst stammen, sollte man die Quellen angeben&lt;br /&gt;
(das sind natürlich nur Beispiele, keine echten Quellen dieses Artikels :-) ):&lt;br /&gt;
&lt;br /&gt;
*Hinz und Kunz, &amp;quot;Der Bau einer Musterseite&amp;quot;, 7. Auflage, Wiki-Verlag, 1931&lt;br /&gt;
&lt;br /&gt;
Besser ist es spezielle Quellendokumente zu erstellen (und diese dann auch mit Inhalt zu füllen):&lt;br /&gt;
&lt;br /&gt;
*[[Kowarschick, W. et al. (2005): Musterquelle (Buch)]]&lt;br /&gt;
*[[Goldratt, E.; Cox , J. (2004): The Goal]]&lt;br /&gt;
*[[Leach, L. (2005): Critical Chain Project Management]]&lt;br /&gt;
&lt;br /&gt;
Auch externe Quellen können zitiert werden.&lt;br /&gt;
&lt;br /&gt;
*[http://kowa.fh-augsburg.de Kowarschicks gesammelte Werke] (besser als eigenes Quellen-Dokument, basierend auf der [[Vorlage:Quelle:URL]])&lt;br /&gt;
*[http://de.wikipedia.org/ Wikipedia] (&#039;&#039;&#039;so nicht&#039;&#039;&#039;, da zu allgemein und außerdem nicht der Wikipedia-Verweis benutzt wurde)&lt;br /&gt;
*[[Wikipedia:Vorlage (Datenverarbeitung)]] (sondern eher so, aber noch besser auch als eigenes Quellen-Dokument)&lt;br /&gt;
&lt;br /&gt;
=Siehe auch=&lt;br /&gt;
Zu guter letzt kann Sekundärliteratur angegeben werden, die zwar im Artikel nicht direkt verwendet, aber doch irgendwie interessant ist.&lt;br /&gt;
Außerdem sollten eine oder mehrere Kategorien angegeben werden sowie ein Verweis auf den zugehörigen englischen Artikel&lt;br /&gt;
in [[GlossaryWiki:Main Page|GlossaryWiki]], auch wenn es diesen noch gar nicht gibt.&lt;br /&gt;
&lt;br /&gt;
*[[Theory of Constraints (Quellen)]] (eine ganze Sammlung von Quellen in einem Quellen-Dokument)&lt;br /&gt;
*[[Wikipedia:Wikipedia:Formatvorlagen|Wikipedia: Formatvorlagen]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Glossar]]&lt;br /&gt;
[[Kategorie:GlossarWiki]]&lt;br /&gt;
[[en:GlossaryWiki:Sample Page]]&lt;/div&gt;</summary>
		<author><name>Bastian</name></author>
	</entry>
</feed>