2016-10-27 2 views
1

Как я могу найти родительскую таблицу (ы) внешних ограничений (ов) на ключе таблицы в oracle? Мне нужно создать раскрывающийся список всех значений, которые могут быть выбраны для этого столбца, на который я смотрю, и вам нужно знать родителя, чтобы я мог посмотреть его значения брата.Как найти родительскую таблицу внешнего ключа ограничения в oracle?

ответ

2

Вы можете запросить эту информацию от all_constraints (или user_constraints или dba_constraints, конечно). К сожалению, можно только получить имя ограничения внешний ключ ссылается, так что вы должны будете использовать вспомогательный запрос или self join получить ссылающаяся таблицу:

SELECT r.table_name 
FROM user_constraints t 
JOIN user_constraints r ON t.r_constraint_name = r.constraint_name 
WHERE t.constraint_type = 'R' AND t.table_name = 'SOME_TABLE' 
+1

Так что я должен применить это таблицу, которая имеет ограничение? Детский стол? – Dale

+0

@Dale yup - замените '' SOME_TABLE'' на имя таблицы с ограничениями внешнего ключа (дочерняя таблица), и вы должны получить имя [s] таблицы [s], которая ссылается (родительская таблица [ s]) – Mureinik

+0

Я сделал это и получил ошибку ORA-00904: «R». «CONSTRAINTS_NAME»: недопустимый идентификатор – Dale