В Oracle SQL Developer , если я просматриваю информацию в таблице, я могу просматривать ограничения, которые позволяют мне видеть внешние ключи (и, таким образом, на какие таблицы ссылается эта таблица), и я могу просматривать зависимости, чтобы увидеть, что пакеты и такие ссылки в таблице. Но я не уверен, как найти, какие таблицы ссылаются на таблицу.
Например, скажем, я смотрю на emp
стол. Существует еще одна таблица, в emp_dept
которой отражено, какие сотрудники работают в каких отделах, и которая ссылается на emp
таблицу через emp_id
первичный ключ emp
таблицы. Есть ли способ (через некоторый элемент пользовательского интерфейса в программе, а не через SQL) найти, что emp_dept
таблица ссылается на emp
таблицу, и мне не нужно знать, что emp_dept
таблица существует?
источник
Чтобы добавить это в SQL Developer как расширение, сделайте следующее:
Добавьте расширение в SQL Developer:
Перейдите к любой таблице, и теперь вы должны увидеть дополнительную вкладку рядом с SQL, помеченную FK References, которая отображает новую информацию FK.
Ссылка
источник
and owner = :OBJECT_OWNER
раньшеand exists
.describe books;
иselect * from books;
, он не показывает вкладку fk reference на Oracle sql developer VM.Замените [Your TABLE] на emp в запросе ниже
источник
constraint_type in ('P','U')
это излишне, потому что, если тип_условия ограничения TOTO равен 'R', тогда r_constraint_name TOTO, конечно, является именем ограничения типа 'P' ИЛИ 'U' в ссылочной таблице. Нет необходимости указывать это. Вы используетеIN
, так что это очень много,OR
и мы заботимся только об единственном операнде OR, который оценивается как true.Вы можете запросить это из
ALL_CONSTRAINTS
представления:источник
В SQL Developer 4.1, выпущенный в мае 2015 года, добавлена вкладка «Модель», которая отображает внешние ключи таблицы, которые ссылаются на вашу таблицу, в формате диаграммы отношений сущностей.
источник
Как насчет чего-то вроде этого:
источник
dba_constraints
вall_constraints
примерно так:SELECT c.constraint_name, c.constraint_type, c2.constraint_name, c2.constraint_type, c2.table_name FROM all_constraints c JOIN all_constraints c2 ON (c.r_constraint_name = c2.constraint_name) WHERE c.table_name = '<TABLE_OF_INTEREST>' AND c.constraint_TYPE = 'R';
источник
Это было в продукте в течение многих лет - хотя это не было в продукте в 2011 году.
Но просто нажмите на страницу модели.
Убедитесь, что вы используете по крайней мере версию 4.0 (выпущенную в 2013 году) для доступа к этой функции.
источник
Чтобы добавить ответ к приведенному выше ответу для плагина sql для разработчиков, использование приведенного ниже XML поможет получить столбец, связанный с внешним ключом.
источник