2014-01-17 3 views
0

В базе данных ibm db2 у меня есть две таблицы, ТАБЛИЦА 1 и ТАБЛИЦА2. У меня также есть логический файл LOGICAL1 в TABLE1 LOGICAL1 фильтрует записи из TABLE1 в зависимости от значения некоторых полей TABLE1. (это похоже на представление sql)добавить ограничение внешнего ключа для представления

Я хотел бы добавить внешнее ограничение между TABLE2 и логическим файлом LOGICAL1.

Когда я попытался это сделать, у меня появилось сообщение об ошибке SQ0157, в котором указано, что LOGICAL1 недействителен в отношении предложения внешнего ключа, что логические файлы или представления не могут быть указаны в предложении внешнего ключа.

Итак, есть ли способ ограничить отфильтрованную таблицу?

ответ

2

Ограничения означают, что все дочерние строки имеют родительскую строку.

Рассмотрите возможность записи триггера по дочерней таблице, которая использует LOGICAL1 для проверки того, разрешена ли вставка/запись.

1

Как Джеймс указывает, FK ограничения применяются только к физическому столу. AFAIK, это правило применяется ко всем системам РСУБД.

Но если вы установите ограничение на физическое, его эффекты будут видны в представлении.

Charles

Смежные вопросы