posted 10 years ago
This would be typically used in a situation where you have rows in the table that violate the constraint, but want to force any modifications to the table (inserts or updates) to conform to the constraint. It doesn't make much sense with primary key, though. But for foreign constraints, or check constraints this might be useful from time to time.
With a small modification this is often used in data warehouses and OLAP applications. If you have a very large table (say, billions of rows) and you know the data are conform with the constraint, you can set it to ENABLE NOVALIDATE RELY. The RELY is important here - it tells the database that all rows are conform with the constraint and the database can use this knowledge to answer queries (so if you use ENABLE NOVALIDATE RELY, but the constraint is actually violated by the data, your queries might give wrong results - no wonder, you've "lied" to the database).