«Включение» FK после загрузки действительно должно выполнить проверку.
Если ваша СУБД этого не делает, выбросьте ее.
Если ваша СУБД этого не делает и вы все еще хотите продолжать работать с таким дерьмом, вы можете выполнить запрос соответствующего выражения SEMIMINUS для RA.
Это может выглядеть примерно так:
ВЫБРАТЬ ...
FROM table_with_FK
ГДЕ НЕ СУЩЕСТВУЕТ (
ВЫБРАТЬ ...
FROM table_with_PK
ГДЕ PK_attribute1 = FK_attribute1 и PK_attribute2 = FK_attribute2 и ...
) И <все, что позволяет идентифицировать загруженные строки>
или чуть более современно (если ваша СУБД поддерживает EXCEPT):
SELECT FK_attributes
FROM table_with_FK
ГДЕ <все, что позволяет идентифицировать загруженные строки>
КРОМЕ
ВЫБЕРИТЕ PK_attributes_possbly_renamed
FROM table_with_PK
;
РЕДАКТИРОВАТЬ (отвечая на вопрос: «Не всем нужны продукты Oracle и IBM». «Отбрасывать это» - не очень хороший совет.)
ОП очень четко указал, что он ОПРЕДЕЛЕННО заинтересован в целостности данных. Поэтому он действительно должен использовать продукт СУБД, который предлагает небольшую поддержку профессионального уровня для обеспечения целостности данных. Я искренне надеюсь, что «продукты Oracle и IBM» не единственные, кто это делает.