Документация IBM DB2 гласит:
Чтобы повысить производительность запросов, вы можете добавить информационные ограничения к своим таблицам.
И есть это NOT ENFORCED
вариант, который мы можем предоставить:
ALTER TABLE <name> <constraint attributes> NOT ENFORCED
Объяснение довольно простое:
NOT ENFORCED следует указывать только в том случае, если известно, что данные таблицы независимо соответствуют ограничению.Результаты запроса могут быть непредсказуемыми, если данные на самом деле не соответствуют ограничению.
Из того, что я понял - если у меня есть, скажем, foreign key
, в таблице, объявленной как NOT ENFORCED
, этоабсолютно то же самое, что вообще не иметь его.
Но каковы же реальные варианты его использования и когда следует использовать эту опцию? (в чем разница между ограничением NOT ENFORCEDне имея его вообще)