## org.h2.api
Interface Trigger

All Known Implementing Classes:
  FullText.FullTextTrigger, FullTextLucene.FullTextTrigger, TestPreparedStatement.SequenceTrigger, TestRunscript, TestTriggersConstraints, TestTriggersConstraints.Test, TestTriggersConstraints.TestSelect, TestTriggersConstraints.TestView, TriggerPassData, TriggerSample.MyTrigger

    public interface Trigger

A class that implements this interface can be used as a trigger.

Field Summary
`static int` `DELETE` The trigger is called for DELETE statements.
`static int` `INSERT` The trigger is called for INSERT statements.
`static int` `SELECT` The trigger is called for SELECT statements.
`static int` `UPDATE` The trigger is called for UPDATE statements.

Method Summary
`void` `close()` This method is called when the database is closed.
`void` `fire(java.sql.Connection conn, java.lang.Object[] oldRow, java.lang.Object[] newRow)` This method is called for each triggered action.
`void` `init(java.sql.Connection conn, java.lang.String schemaName, java.lang.String triggerName, java.lang.String tableName, boolean before, int type)` This method is called by the database engine once when initializing the trigger.
`void` `remove()` This method is called when the trigger is dropped.

Field Detail

### INSERT

    static final int INSERT

  The trigger is called for INSERT statements.

  See Also:
    Constant Field Values

### UPDATE

    static final int UPDATE

  The trigger is called for UPDATE statements.

  See Also:
    Constant Field Values

### DELETE

    static final int DELETE

  The trigger is called for DELETE statements.

  See Also:
    Constant Field Values

### SELECT

    static final int SELECT

  The trigger is called for SELECT statements.

  See Also:
    Constant Field Values

Method Detail

### init

    void init(java.sql.Connection conn,
              java.lang.String schemaName,
              java.lang.String triggerName,
              java.lang.String tableName,
              boolean before,
              int type)
              throws java.sql.SQLException

  This method is called by the database engine once when initializing the trigger. It is called when the trigger is created, as well as when the database is opened.

  Parameters:
    `conn` - a connection to the database
    `schemaName` - the name of the schema
    `triggerName` - the name of the trigger used in the CREATE TRIGGER statement
    `tableName` - the name of the table
    `before` - whether the fire method is called before or after the operation is performed
    `type` - the operation type: INSERT, UPDATE, or DELETE
  Throws:
    `java.sql.SQLException`

### fire

    void fire(java.sql.Connection conn,
              java.lang.Object[] oldRow,
              java.lang.Object[] newRow)
              throws java.sql.SQLException

  This method is called for each triggered action. The method is called immediately when the operation occurred (before it is committed). A transaction rollback will also rollback the operations that were done within the trigger, if the operations occurred within the same database. If the trigger changes state outside the database, a rollback trigger should be used.

  The row arrays contain all columns of the table, in the same order as defined in the table.

  Parameters:
    `conn` - a connection to the database
    `oldRow` - the old row, or null if no old row is available (for INSERT)
    `newRow` - the new row, or null if no new row is available (for DELETE)
  Throws:
    `java.sql.SQLException` - if the operation must be undone

### close

    void close()
               throws java.sql.SQLException

  This method is called when the database is closed. If the method throws an exception, it will be logged, but closing the database will continue.

  Throws:
    `java.sql.SQLException`

### remove

    void remove()
                throws java.sql.SQLException

  This method is called when the trigger is dropped.

  Throws:
    `java.sql.SQLException`