Structure of the violations table

When you issue START VIOLATIONS TABLE for a target table, the violations table that the statement creates has a predefined structure. This structure consists of the columns of the target table and three additional columns.

The following table shows the schema of the violations table.
Column Name Data Type Column Description
Same columns (in the same order) that appear in the target table Same types as corresponding columns in the target table. The violations table has the same schema as the target table, so that rows violating constraints or a unique-index during insert, update, and delete operations can be filtered to the violations table.
informix_tupleid SERIAL Unique serial code for the nonconforming row
informix_optype CHAR(1) The type of operation that caused this bad row. This column can have the following values:
  • I = Insert
  • D = Delete
  • O = Update (with original values in this row)
  • N = Update (with new values in this row)
  • S = SET Database Object Mode
informix_recowner CHAR(32) User who issued the statement that created this nonconforming row

If the target table of the START VIOLATIONS TABLE statement is protected by a security policy, the database server protects the violations table with same security policy. In this case, the schema of the violations table includes an IDSSECURITYLABEL column whose name and position among other columns corresponds to the IDSSECURITYLABEL column of the target table. When the violations table is created, any SECURED WITH label specifications that protect columns in the target table also protect the corresponding violations table columns.

Serial columns in the target table are converted to integer data types in the violations table.

Users can examine these nonconforming rows in the violations table, analyze the related rows that contain diagnostic information in the diagnostics table, and take corrective actions.