Each event definition has a system event associated with it. It also has one or more trigger conditions. The event handler is triggered when the trigger conditions for the system event are satisfied.
The trigger conditions are included in the WHERE clause of the CREATE EVENT statement, and can be combined using the AND keyword. Each trigger condition is of the following form:
event_condition( condition-name ) comparison-operator value
The condition-name argument is one of a set of preset strings, which are appropriate for different event types. For example, you can use DBSize (the database file size in megabytes) to build a trigger condition suitable for the GrowDB system event. The database server does not check that the condition-name matches the event type: it is your responsibility to ensure that the condition is meaningful in the context of the event type.
Notify an administrator of a possible attempt to break into the database. This example uses iqdemo.db:
create event SecurityCheck type ConnectFailed handler begin declare num_failures int; declare mins int; insert into FailedConnections( log_time ) values ( current timestamp ); select count( * ) into num_failures from FailedConnections where log_time >= dateadd(minute, -5, current timestamp ); if( num_failures >= 3 ) then select datediff( minute, last_notification, current timestamp ) into mins from Notification; if( mins > 30 ) then update Notification set last_notification = current timestamp; end if end if end;