|
CREATE EVENT
Die CREATE EVENT-Anweisung
definiert
Ereignisse
mit den entsprechenden Verarbeitungsroutine, die vorwiegend zur Automatisierung von
bestimten wiederkehrenden Aufgaben verwendet werden.
Beim Erstellen eines Events gehen die Benutzerrechte das Erstellers auf das Event über.
Dabei ist zu beachten, dass der EVENT-Handler beim Ausführen eines
auf Grundlage der Berechtigungen des Erstellers ausgeführt wird.
Dementsprechend können keine Ereignisse erstellt werden, die anderen Benutzern gehören.
CREATE EVENT: Syntax
CREATE EVENT event_name
[ TYPE event_typ
[ WHERE trigger_condition [ AND trigger_condition ] ... ]
| SCHEDULE schedule_declaration, ... ]
[ ENABLE | DISABLE ]
[ AT { CONSOLIDATED | REMOTE | ALL } ]
[ HANDLER
BEGIN
...
END ]
Parameter der Anweisung CREATE EVENT
event_name
Ist ein Bezeichner für das entsprechende Ereignis, der frei vergeben werden kann. Darf aber keine
Leerzeichen enthalten.
event_type:
Ist der Typ des Ereignisses. Als event_type wird ein "case insensitiver"
Wert aus der unten stehenden Liste angegeben. Das sind vordefinierte Systemereignisse, ie
insbesondere zur Steuerung von Trigger verwendet werden.
-
DBDiskSpace
-
TempDiskSpace
-
LogDiskSpace
-
GrowDB
-
GrowLog
-
GrowTemp
-
BackupEnd
-
'Connect'
-
ConnectFailed
-
'Disconnect'
-
DatabaseStart
-
GlobalAutoincrement
-
MirrorFailover
-
MirrorServerDisconnect
-
'RAISERROR'
-
ServerIdle
Damit ein Ereignis angestoßen wird, muss es mit einer WEHRE-Bedingung verknüpft sein.
Also Beispielsweise wenn der freie LogDiskSpace kleiner als 20 % ist:
...
WHERE event_condition( 'LogDiskSpace' ) < 20
...
Die WHERE-Bedinung kann mit meheren AND-Bedingungen verknüpft sein. Aber
nicht mit OR-Bedinungen oder anderen Bedinungstypen.
trigger_condition:
Definiert die Bedingungen, die notwendig sind, um das Ereignis zu starten.
event_condition(condition_name) { = | < | > | != | <= | >= } value
schedule_declaration
Definiert den Ereignisauslösenden Zeitpunkt.
[schedule_name] {START TIME start_time | BETWEEN start_time AND end_time}
[EVERY period { HOURS | MINUTES | SECONDS }]
[ON { (day_of_week, ... ) | (day_of_month, ...) }]
[START DATE start_date]
day_of_week, day_of_month, value und period
Müssen im
Datentyp
interger
angegeben werden.
schedule_name
Ist ein Bezeichner für den entsprechende Ereignis, der frei vergeben werden kann. Darf aber keine
Leerzeichen enthalten.
start_date
Ist ein Wert, der im Datentyp
date
angegeben werden muss.
start_time und end_time
Ist ein Wert, der im Datentyp
time
angegeben werden muss.
Angelegte Ereignisse
Bereits erstelle Ereignisse können aus der
Systemtabelle
SYSEVENT
ausgelesen werden.
SELECT event_id, event_name FROM SYSEVENT
Die zur event_id definierten Ereignisse stehen in der Spalte "action".
SELECT action FROM SYSEVENT where event_id = 6
|