IBM Books

Message Reference


SQL3600 - SQL3699

SQL3600N The IMMEDIATE CHECKED option of the SET CONSTRAINTS statement is not valid since the table "<table-name>" is not in the check pending state.

Explanation: The data is checked for constraint violations only if the table is placed in the check pending state.

User Response: Use the SET CONSTRAINT statement with the OFF option to place a table in the check pending state.

sqlcode: -3600

sqlstate: 51027

SQL3601W The statement caused one or more tables to automatically be placed in check pending state.

Explanation: There are two situations where this occurs.

  1. Setting a parent table in a referential structure requires dependent and descendent tables to be set in check pending. This is necessary to enforce referential integrity constraints. Adding a foreign key when the parent table is in a check pending state requires all new dependents and descendents of the parent table to be placed automatically in check pending.

  2. Setting a base table that has dependent refresh immediate summary tables requires these dependent summary tables to be set in check pending. This is necessary to enforce the data relationship between the base table and the dependent summary table.

User Response: This is a warning message. The user must execute the SET INTEGRITY statement with the IMMEDIATE CHECKED option in order to validate the integrity on all the dependent and descendent tables.

sqlcode: +3601

sqlstate: 01586

SQL3602W Check data processing found constraint violations and moved them to exception tables.

Explanation: There are rows that violate constraints that were specified to be checked by the SET CONSTRAINTS statement execution. These were moved to exceptions tables.

User Response: Check the exception tables for rows that violate constraints. The rows have been deleted from the original table but can be corrected and transferred back from the exception tables.

sqlcode: +3602

sqlstate: 01603

SQL3603N Check data processing through the SET CONSTRAINTS statement has found that constraint "<constraint-name>" has been violated.

Explanation: A row has been found to violate a constraint defined on a table specified to be checked by the SET CONSTRAINTS statement.

User Response: The row has not been deleted from the table since the FOR EXCEPTION option was not used.

It is advisable to execute the SET CONSTRAINTS statement using the FOR EXCEPTION option when checking the data. The data may be corrected with the information from the exception table(s).

sqlcode: -3603

sqlstate: 23514

SQL3604N Exception table "<excp-table-name>" corresponding to table "<table-name>" in the SET CONSTRAINTS statement does not have the proper structure, has been defined with unique indexes, constraints or triggers, or is in the check pending state itself.

Explanation: The exception table corresponding to a table must have its definition similar to that of the original table. Optional columns for the utility are as specified in the relevant section of the documentation describing the exception tables. There must not be any constraints or triggers defined on the exception table. The exception table itself should not be in the check pending state.

User Response: Create the exception table as indicated in the relevant section of the documentation and re-run the utility.

sqlcode: -3604

sqlstate: 428A5

SQL3605N Table "<table-name>" named in the SET CONSTRAINTS statement is either not listed to be checked or is an exception table specified more than once.

Explanation: When the FOR EXCEPTION clause is specified in the SET CONSTRAINTS statement, this error could be caused by one of the following :

User Response: Correct the table names and execute the command again.

sqlcode: -3605

sqlstate: 428A6

SQL3606N There is a mismatch in the number of tables being checked and in the number of exception tables specified in the SET CONSTRAINTS statement.

Explanation: There must be a one-to-one correspondence between the original tables and the exception tables provided in the list.

User Response: Create the missing exception table if not already done and specify it in the list in order to execute the command again.

sqlcode: -3606

sqlstate: 428A7

SQL3608N Cannot check or reset the Check Pending state on dependent table "<dep-table-name>" using the SET CONSTRAINTS statement while the parent table "<par-table-name>" is in the check pending state.

Explanation: The parent table must be clean (not in the check pending state) or be included in the invocation list in order to

User Response: Ensure that the parent table is not in check pending by executing the SET CONSTRAINT statement to check the parent table.

It is recommended to check the parent table first. It is also possible to check the dependent table and include the parent table in the invocation list. In this case, the command could still fail if there are constraint violations in the parent table and they are not deleted (ie., if the FOR EXCEPTION option is not used).

In the case of a referential cycle, all tables must be included in the invocation list.

sqlcode: -3608

sqlstate: 428A8


[ Top of Page | Previous Page | Next Page | Table of Contents | Index ]

[ DB2 List of Books | Search the DB2 Books ]