Я не могу найти хороший ресурс в Интернете, который объясняет check option
, который используется при добавлении ограничения внешнего ключа. Я видел его как with check option
и with no check option
.Teradata: Что такое CHECK OPTION при добавлении ограничения внешнего ключа?
ответ
Добавление флага WITH CHECK OPTION
к ограничению REFERENCES
указывает базе данных на принудительное применение определенного ограничения RI при детализации одной транзакции или запроса. Система объединит дочерние и родительские таблицы, чтобы увидеть, существует ли несогласованность. Если обнаружена несогласованность, вся транзакция откатывается в режиме сеанса TERADATA
или в запросе проблемы в режиме ANSI
.
В противном случае, если вы укажете WITH NO CHECK OPTION
, база данных не будет применять RI. Таким образом, запись в дочернем элементе может ссылаться на родителя, используя значение, отличное от NULL, когда значение родительской таблицы не существует.
Принудительное применение RI - это обоюдоострый меч в Терадате, и его необходимо тщательно оценить, как вы в конечном итоге решите обеспечить его соблюдение. В руководствах Teradata излагаются многие из вещей, которые вам необходимо учитывать, чтобы помочь принять ваше решение. Если говорить, что за последние 15 лет, что я работал с Teradata, я еще не работал над системой, в которой RI был внедрен в хранилище данных. Правильно, неправильно или безразлично.
Надеюсь, это поможет.