dbTalk Databases Forums  

Daffodil DB triggers

comp.databases comp.databases


Discuss Daffodil DB triggers in the comp.databases forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
DaffodilDB Sales Team
 
Posts: n/a

Default Daffodil DB triggers - 07-08-2004 , 06:36 AM






Daffodil DB permits you to define procedures that are implicitly
executed when an INSERT, UPDATE, or DELETE statement is issued against
the associated table. These procedures are called database triggers.



Triggers can offer easy-to-implement solutions for the most
complicated database problems. Tracking unauthorized changes in a
database can be transformed from a lengthy and difficult security task
to an automated routine with the use of triggers. The secret is to
store data about each change as it occurs, so that you can determine
whose changing the data and when. The results of this tracking will
help you determine whether a data change is a simple mistake in
reporting, an unintentional mistake by an honest employee, or a real
security loophole that needs to be taken care of.



Knowing about the occurrence of an error is useless, unless you can
identify its source and prevent its recurrence. This article shows how
Daffodil DB triggers can serve as routine auditing procedures that
track errors whether they are due to human error or program logic. You
will learn how quickly triggers can help you track down errors or
simply create a historical record of normal processes



The execution of a trigger is transparent to the user. Triggers are
executed by the database when definite types of data manipulation
commands are executed on the tables. Specific columns can also be
updated with the use of triggers.



The main benefit of triggers is that they react automatically to a
specific type of modification made to a specific table. Keep the
following rules in mind when you are adding a trigger:



Only the table owner has permission to create triggers, and permission
cannot be transferred.


A trigger is considered a database object, so use object rules when
naming and referencing a trigger.


A trigger can reference a temporary table but cannot modify one.


A trigger cannot reference a system table.

Uses of Triggers

Triggers can supplement the usual capabilities of Daffodil DB to offer
a highly customized database. For example, a trigger can limit DML
operations against a table to those issued during a particular time. A
trigger could also restrict DML operations in particular cases. Other
uses for triggers are to

Automatically generate derived column values
Prevent invalid transactions
Enforce complex security authorizations
Enforce referential integrity across nodes in a distributed database
Impose complex business rules
Provide sophisticated auditing
Maintain synchronous table replicates
Collect statistics on table access

Types of Triggers

Daffodil DB supports Triggers of following types,

Row and Statement triggers

BEFORE and AFTER triggers

Row Triggers and Statement Triggers

When you define a trigger, you can specify the number of times the
trigger action is to be executed: once for every row affected by the
triggering statement or once for the triggering statement, no matter
how many rows it affects.

Row Triggers

A row trigger is fired every time the triggering statement affects the
table. For example, if an UPDATE statement updates several rows of a
table, a row trigger is fired one time for each row affected by the
UPDATE statement. If a triggering statement affects no rows, a row
trigger is not executed at all.

Syntax for creating a row level trigger in Daffodil DB can be
explained with the help of following example,

CREATE TRIGGER After Insert On test REFERENCING NEW As refert

FOR EACH ROW WHEN (testcol < 50 ) update test set testcol = 100



Statement Triggers

A statement trigger is fired once on behalf of the triggering
statement, regardless of the number of rows affected by the triggering
statement. For example, even if a DELETE statement deletes several
rows from a table, a statement-level DELETE trigger is fired only
once.

Statement triggers are useful if the code in the trigger action does
not depend on the data provided by the triggering statement or the
rows affected.

Following examples shows the syntax for creating a statement level
trigger in Daffodil DB

create trigger sample_trigger

before insert on teacher

for each statement

update teacher set salary=salary+20000

BEFORE and AFTER Triggers

When defining a trigger, you can specify the trigger timing, as
whether the trigger action is to be executed before or after the
triggering statement. BEFORE and AFTER apply to both statement and row
triggers.



Before Triggers



As the name suggests, before triggers are fired before the execution
of a triggering statement. For example a before trigger can be used to
take back up of data contained in a table before a particular batch of
statements.



Before triggers are combined with DML statements (Insert
/Update/Delete) to construct the triggering condition for a table. For
example, this query updates a table called audit before any
changes/insertions are made to the school table.



create trigger Trigger_Name

before insert on teacher

referencing old row as oldRow

for each row update audit set salary=salary+8000

BEFORE triggers execute the trigger action before the triggering
statement is executed. This type of trigger is commonly used in the
following situations:

When the trigger action should determine whether the triggering
statement should be allowed to execute. Users can choose BEFORE
triggers to eliminate unnecessary processing of the triggering
statement and its eventual rollback in cases where an exception is
raised in the trigger action.

To derive specific column values before completing a triggering INSERT
or UPDATE statement.


After Triggers

AFTER triggers execute the trigger action after the triggering
statement is executed. AFTER triggers are used in the following
situations:

When you want the triggering statement to complete before executing
the trigger action.

If a BEFORE trigger is already present, an AFTER trigger can perform
different actions on the same triggering statement.




The following examples depict the usage and syntax for triggers in
Daffodil DB



You can create a trigger on the Daffodil DB sample database table with
the help of following statement.





create trigger sample_trigger

before delete on student

referencing old row as oldRow

for each row update student set age=age+1

You can delete an existing trigger on the Daffodil DB sample database
table with the help of the following statement.



drop trigger sample_trigger



For more information and support regarding any issue related to
Daffodil DB Contact us at Daffodil DB Support .


Join other professional developers at Daffodil DB Online Community.

Reply With Quote
  #2  
Old   
Ed prochak
 
Posts: n/a

Default Re: Daffodil DB triggers - 07-09-2004 , 11:28 AM






webmaster (AT) daffodildb (DOT) com (DaffodilDB Sales Team) wrote in message news:<aec69450.0407080336.41c57b93 (AT) posting (DOT) google.com>...
Quote:
Daffodil DB permits you to define procedures that are implicitly
executed when an INSERT, UPDATE, or DELETE statement is issued against
the associated table. These procedures are called database triggers.

WOW!

the Daffodil DB has advanced its DB technology to the 1990's



Sorry about the sarcasm, but your ad just seemed a little outdated.

Good luck.
Ed


Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.3
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.