A constraint in a table is defined with the INITIALLY IMMEDIATE clause. You executed the
ALTER TABLE command with the ENABLE VALIDATE option to enable the constraint that was
disabled.
What are the two effects of this command? (Choose two.)
A.
It fails if any existing row violates the constraint.
B.
It does not validate the existing data in the table.
C.
It enables the constraint to be enforced at the end of each transaction.
D.
It prevents insert, update, and delete operations on the table while the constraint is in the
process of being enabled.
Explanation:
Deferred constraints are constraints that are checked only when a transaction is committed. If
constraint violations are detected at commit time, the entire transaction is rolled back. These
constraints are most useful when both the parent and child rows in a foreign key relationship are
entered at the same tune, as in the case of an order entry system in which the order and the items
in the order are entered at the same time. For deferrable constraints, primary key and unique keys
need non-unique indexes; if the column or columns already have a unique index on them,
constraint creation fails because those indexes cannot be deferred.
Constraint Checking (continued)
A constraint that is defined as deferrable can be specified as one of the following:
Initially immediate specifies that by default it must function as an immediate constraint unless
explicitly set otherwise.
Initially deferred specifies that by default the constraint must be enforced only at the end of the
transaction.
Note: If an appropriate index already exists on the column, it is used for the constraint. An
additional index does not need to be created for primary keys and unique keys.