Package org.h2.test.db

# Class TestTriggersConstraints

java.lang.Object
org.h2.test.TestBase
org.h2.test.TestDb
org.h2.test.db.TestTriggersConstraints

All Implemented Interfaces:
  `Trigger`

public class TestTriggersConstraints extends org.h2.test.TestDb implements Trigger
Tests for trigger and constraints.

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`static final class`
`TestTriggersConstraints.ConcurrentTrigger`
`static class`
`TestTriggersConstraints.DeleteTrigger`
A trigger that deletes all rows in the test table.
`static class`
`TestTriggersConstraints.NullTrigger`
Trigger that sets null value.
`static class`
`TestTriggersConstraints.NullTriggerAdapter`
Trigger that sets null value.
`static class`
`TestTriggersConstraints.TestSelect`
A test trigger implementation.
`static class`
`TestTriggersConstraints.TestTriggerAdapter`
A test trigger adapter implementation.
`static class`
`TestTriggersConstraints.TestTriggerAlterTable`
A test trigger implementation.
`static class`
`TestTriggersConstraints.TestView`
A test trigger implementation.
`static class`
`TestTriggersConstraints.TestViewGeneratedKeys`
`static class`
`TestTriggersConstraints.WrongTrigger`
Trigger that sets value of the wrong data type.
`static class`
`TestTriggersConstraints.WrongTriggerAdapter`
Trigger that sets value of the wrong data type.

## Nested classes/interfaces inherited from class org.h2.test.TestDb

`org.h2.test.TestDb.Child`

## Nested classes/interfaces inherited from class org.h2.test.TestBase

`org.h2.test.TestBase.VoidCallable`

## Field Summary

### Fields inherited from class org.h2.test.TestBase

`BASE_TEST_DIR, config, start, uniqueId`

### Fields inherited from interface org.h2.api.Trigger

`DELETE, INSERT, SELECT, UPDATE`

## Constructor Summary

Constructors
Constructor
Description
`TestTriggersConstraints()`

## Method Summary

Modifier and Type
Method
Description
`void`
`close()`
This method is called when the database is closed.
`void`
`fire(Connection conn, Object[] oldRow, Object[] newRow)`
This method is called for each triggered action.
`void`
`init(Connection conn, String schemaName, String trigger, String tableName, boolean before, int type)`
This method is called by the database engine once when initializing the trigger.
`static void`
`main(String... a)`
Run just this test.
`void`
`remove()`
This method is called when the trigger is dropped.
`void`
`test()`
This method will be called by the test framework.

### Methods inherited from class org.h2.test.TestDb

`buildChild, deleteDb, deleteDb, getConnection, getConnection, getURL`

### Methods inherited from class org.h2.test.TestBase

`assertContains, assertEmpty, assertEqualDatabases, assertEqualReaders, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEqualStreams, assertFalse, assertFalse, assertKnownException, assertKnownException, assertNotContaining, assertNotNull, assertNotNull, assertNull, assertResult, assertResultRowCount, assertResultSetMeta, assertResultSetOrdered, assertResultSetOrdered, assertSame, assertSingleValue, assertSmaller, assertStartsWith, assertThrows, assertThrows, assertThrows, assertThrows, assertThrows, assertThrows, assertThrows, assertThrows, assertTrue, assertTrue, checkErrorCode, crash, createCaller, createFailingStream, eatMemory, execute, execute, fail, fail, freeMemory, getBaseDir, getClassPath, getFilePassword, getJVM, getMemoryUsed, getMemoryUsedBytes, getPassword, getPassword, getPowerOffCount, getSize, getTestDir, getTestName, getUser, init, init, isEnabled, logError, logErrorMessage, println, printTime, printTimeMemory, readString, runTest, setPowerOffCount, testFromMain, throwException, trace, trace, traceMemory`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### TestTriggersConstraints

public TestTriggersConstraints()

## Method Details

### main

public static void main(String... a) throws Exception
Run just this test.

Parameters:
  `a` - ignored
Throws:
  `Exception`

### test

public void test() throws Exception
Description copied from class: `org.h2.test.TestBase`
This method will be called by the test framework.

Specified by:
  `test` in class `org.h2.test.TestBase`
Throws:
  `Exception` - if an exception in the test occurs

### fire

public void fire(Connection conn, Object[] oldRow, Object[] newRow) throws SQLException
Description copied from interface: `Trigger`
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.

The trigger itself may change the data in the newRow array.

Specified by:
  `fire` in interface `Trigger`
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:
  `SQLException` - if the operation must be undone

### close

public void close()
Description copied from interface: `Trigger`
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.

Specified by:
  `close` in interface `Trigger`

### remove

public void remove()
Description copied from interface: `Trigger`
This method is called when the trigger is dropped.

Specified by:
  `remove` in interface `Trigger`

### init

public void init(Connection conn, String schemaName, String trigger, String tableName, boolean before, int type)
Description copied from interface: `Trigger`
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. The type of operation is a bit field with the appropriate flags set. As an example, if the trigger is of type INSERT and UPDATE, then the parameter type is set to (INSERT | UPDATE).

Specified by:
  `init` in interface `Trigger`
Parameters:
  `conn` - a connection to the database (a system connection)
  `schemaName` - the name of the schema
  `trigger` - 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, DELETE, SELECT, or a combination (this parameter is a bit field)