Я хотел бы запросить системную таблицу в sap-hana db для извлечения информации о внешних ключах. Существуют системные таблицы «Indexes» и «Index_columns», но я вижу только столбец «Ограничение», содержащий «Первичный ключ» и «?» значения, но не значение внешнего ключа. Любая помощь по этому поводу высоко ценится.
Системная таблица для извлечения внешних ключей в saphana
Ответы (1)
Проверьте системную таблицу REFERENTIAL_CONSTRAINTS:
select * from "REFERENTIAL_CONSTRAINTS"
Именно там перечислены внешние ключи — так же, как это можно найти в системной документации.
person
Lars Br.
schedule
19.11.2014
Это настоящие ограничения внешнего ключа? Потому что записей почти нет.
- person ScientiaEtVeritas; 09.08.2016
Ну, а у базы данных, которую вы используете, действительно есть внешние ключи? В базах данных SAP NetWeaver вы обычно не найдете ничего из этого.
- person Lars Br.; 10.08.2016
Это ХАНА. И я точно выполнил часть кода, которую вы предоставили. Но записи с SAP_ECC нет.
- person ScientiaEtVeritas; 10.08.2016
Итак, вы ищете систему SAP ECC? В этом случае, как уже упоминалось, не ожидайте найти какие-либо внешние ключи на уровне БД. SAP не реализует их на уровне БД.
- person Lars Br.; 10.08.2016
Спасибо :) У вас есть ссылки на это? Меня интересуют дальнейшие объяснения и причины этого.
- person ScientiaEtVeritas; 10.08.2016
Вы не найдете никакой внешней документации SAP, объясняющей это дизайнерское решение. Однако здесь выделяются две основные причины: 1. асинхронный процесс обновления SAP NetWeaver (прочитайте об этом, если вы не знакомы) создает прерывистые несогласованные состояния базы данных - ограничения FK были бы здесь проблематичными, и 2. производительность. Проверка ограничений сильно влияет на пропускную способность транзакций. Другие системы ERP не используют их по той же причине (см., например, Oracle, JDE...)
- person Lars Br.; 10.08.2016