Uploaded image for project: 'Derby'
  1. Derby
  2. DERBY-172

Improve documentation for BEFORE triggers

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Minor
    • Resolution: Won't Fix
    • 10.0.2.0
    • None
    • Documentation
    • Windows XP SP1 Windows
    • Low

    Description

      I image that this is a documentation problem. The "words" around triggers seem to imply the ability to do actions "BEFORE" the INSERT/UPDATE/DELETE. For instance:

      "Along with constraints, triggers can help enforce data integrity rules with actions such as cascading deletes or updates. Triggers can also perform a variety of functions such as issuing alerts, updating other tables, sending e-mail, and other useful actions."

      Well, the CREATE TRIGGER command only allows AFTER as an option (even though the SYSTRIGGERS catalog uses "B" for before and "A" for after) and it won't allow a CALL statement to be processed. Seems to me that there aren't any ways to send an e-mail, issue alerts (no SIGNAL function either), or enforce integrity rules. How can you enforce integrity rules if invalid data comes in? I can't force a SIGNAL or error with the trigger, so this is useless for validating changes to the data.

      In addition, there appears to be some logic regarding BEFORE triggers in Derby, but its not currently working.

      CREATE TRIGGER CB NO CASCADE BEFORE
      INSERT ON BONUSES
      REFERENCING NEW AS n
      FOR EACH ROW MODE DB2SQL
      UPDATE BONUSES
      SET BONUS =
      CASE
      WHEN (n.BONUS = 0) THEN 100
      ELSE n.BONUS
      END;
      ERROR 42Z9D: 'UPDATE' statements are not allowed in 'BEFORE' triggers.

      Attachments

        Activity

          People

            Unassigned Unassigned
            baklarz George Baklarz
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: