Я ищу запрос, позволяющий получить информацию о внешнем ключе (каждая строка: ссылочная таблица и поле, ссылочная таблица и поле) всей схемы.
Я нашел это, но не дает всю необходимую информацию: /programming/4389228/sql-for-oracle-to-check-if-a-constraint-exists
В настоящее время я работаю над этим и, возможно, получу решение в ближайшие минуты / часы. Но если у кого-то уже есть полностью рабочее решение, я буду рад узнать об этом :)
oracle
query
foreign-key
Морозный Z
источник
источник
Ответы:
После некоторого «обратного инжиниринга» запросов, выполненных инструментом Navicat при открытии окна таблицы параметров для таблицы (запросы, извлекающие информацию о внешних ключах, отображаются в окне истории ), вот решение:
источник
SQL Developer поставляется с отчетом, который делает именно это.
Он делает это только для схемы входа в систему, но это быстрое решение, позволяющее получить каждый FK в базе данных - хотя вы можете пропустить такие схемы, как «APEX ...» и «SYS».
Он также пропускает такие вещи, как таблицы в корзине.
Исходный отчет находится на панели «Отчеты» в отчетах по словарю данных.
Вот исправленный запрос, чтобы получить ВСЕ ФК.
И вот как выглядит этот отчет.
источник
Немного сложный код, который также выводит комментарии к столбцам (на основе кода Frosty):
Чтобы сделать вывод более читабельным, я использую
break on TABLE_NAME;
вsqlplus
(посмотрите на мой вопрос /programming/14998296/print-only-first-unique-value-for-column-that-order-by-in-oracle-sqlplus / ).ОБНОВЛЕНИЕ Упрощенный запрос, который собирает список таблиц, имеющих FK-ссылку на данную таблицу (полезно, если вы хотите очистить ограничения после переименования таблиц):
источник