If data integrity can no longer be guaranteed due to execution of a utility or some other operation, HiRDB restricts data manipulation in the check constraint table. The status in which data manipulation is restricted due to loss of guaranteed data integrity is called check pending status. To place a check constraint table in check pending status for the purpose of restricting data manipulation, you must either specify USE in the pd_check_pending operand or do not specify (omit) the operand. You can use the integrity check utility (pdconstck) to clear the check pending status of a table. You can also use the integrity check utility to forcibly place a table into check pending status.
If you have specified NOUSE in the pd_check_pending operand, data manipulation is not restricted even when data integrity between tables cannot be guaranteed. In this case, if you execute an SQL statement or a utility that nullifies the guarantee of data integrity, you can use the integrity check facility to forcibly place the table into check pending status, and then check data integrity.
For details about operations that cause loss of guaranteed data integrity, see 13.19.4 Data manipulation and integrity. For details of how to check data integrity, see 13.19.5 Procedure for checking table integrity.
Check pending status is managed based on dictionary tables and on the table information of the RDAREAs in which the tables are stored. In dictionary tables, check pending status is managed for each table and constraint. In table information, check pending status is managed for each RDAREA if the table is a partitioned table and for each table if the table is not a partitioned table.
Table 13-23 lists the storage locations of check pending status information and their contents.
Table 13-23 Storage locations of check pending status information and their contents (check constraint)
Storage location | Stored information | ||
---|---|---|---|
Dictionary table | SQL_TABLES table | CHECK_PEND2 column | Check pending status of check constraint for each table |
SQL_CHECKS table | CHECK_PEND2 column | Check pending status of check constraint for each constraint | |
RDAREA table information | For non-partitioned table | Check pending status of check constraint or check constraint for each table | |
For partitioned table | Check pending status of referential constraint or check constraint for each RDAREA |
These restrictions are the same as those for the referential constraint. See 13.18.3(3) Operations that are restricted for tables in check pending status.
These restrictions are the same as those for the referential constraint. See 13.18.3(5) When a partitioned table or the inner replica facility is used. However, replace the term referencing table with check constraint table.