org.hsqldb

## Interface Trigger

- All Known Implementing Classes:
    TriggerSample

      public interface Trigger

  The interface an HSQLDB TRIGGER must implement. The user-supplied class that implements this must have a default constructor.
  Since:
    1.7.0
  Author:
    Peter Hudson (peterhudson@users dot sourceforge.net)

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `DELETE_AFTER`
    `static int` | `DELETE_AFTER_ROW`
    `static int` | `DELETE_BEFORE_ROW`
    `static int` | `INSERT_AFTER`
    `static int` | `INSERT_AFTER_ROW`
    `static int` | `INSERT_BEFORE_ROW`
    `static int` | `UPDATE_AFTER`
    `static int` | `UPDATE_AFTER_ROW`
    `static int` | `UPDATE_BEFORE_ROW`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `fire(int type, java.lang.String trigName, java.lang.String tabName, java.lang.Object[] oldRow, java.lang.Object[] newRow)` The method invoked upon each triggered action.

- - ### Field Detail

    - #### INSERT_AFTER

          static final int INSERT_AFTER

      See Also:
        Constant Field Values

    - #### DELETE_AFTER

          static final int DELETE_AFTER

      See Also:
        Constant Field Values

    - #### UPDATE_AFTER

          static final int UPDATE_AFTER

      See Also:
        Constant Field Values

    - #### INSERT_AFTER_ROW

          static final int INSERT_AFTER_ROW

      See Also:
        Constant Field Values

    - #### DELETE_AFTER_ROW

          static final int DELETE_AFTER_ROW

      See Also:
        Constant Field Values

    - #### UPDATE_AFTER_ROW

          static final int UPDATE_AFTER_ROW

      See Also:
        Constant Field Values

    - #### INSERT_BEFORE_ROW

          static final int INSERT_BEFORE_ROW

      See Also:
        Constant Field Values

    - #### DELETE_BEFORE_ROW

          static final int DELETE_BEFORE_ROW

      See Also:
        Constant Field Values

    - #### UPDATE_BEFORE_ROW

          static final int UPDATE_BEFORE_ROW

      See Also:
        Constant Field Values

  - ### Method Detail

    - #### fire

          void fire(int type,
                    java.lang.String trigName,
                    java.lang.String tabName,
                    java.lang.Object[] oldRow,
                    java.lang.Object[] newRow)

      The method invoked upon each triggered action.

      type contains the integer index id for trigger type, e.g. TriggerDef.INSERT_AFTER

      For all triggers defined as default FOR EACH STATEMENT both oldRow and newRow are null.

      For triggers defined as FOR EACH ROW, the following will apply:

      When UPDATE triggers are fired, oldRow contains the existing values of the table row and newRow contains the new values.

      For INSERT triggers, oldRow is null and newRow contains the table row to be inserted. For DELETE triggers, newRow is null and oldRow contains the table row to be deleted.

      For error conditions, users can construct an HsqlException using one of the static methods of org.hsqldb.error.Error with a predefined SQL State from org.hsqldb.error.ErrorCode.

      Parameters:
        `type` - the type as one of the int values defined in the interface
        `trigName` - the name of the trigger
        `tabName` - the name of the table upon which the triggered action is occurring
        `oldRow` - the old row
        `newRow` - the new row
      Throws:
        `org.hsqldb.HsqlException` - the preferred type of exception thrown by the method

Copyright © 2001 - 2018 HSQL Development Group.