Получить имя таблицы по имени ограничения

91

Известно имя ограничения Oracle.

Как найти имя таблицы, для которой применяется это ограничение?

Теги:
constraints

3 ответа

143
Лучший ответ
SELECT owner, table_name
  FROM dba_constraints
 WHERE constraint_name = <<your constraint name>>

предоставит вам имя таблицы. Если у вас нет доступа к представлению DBA_CONSTRAINTS, ALL_CONSTRAINTS или USER_CONSTRAINTS также должны работать.

  • 0
    не работает, появляется ошибка «Неверное имя объекта« USER_CONSTRAINTS »». пожалуйста помоги.
  • 8
    @JitendraPancholi - select table_name from user_constraints where constraint_name = 'xxx'; должен работать для любого пользователя. Вы уверены, что в вашем запросе нет опечатки? Что select owner, object_name from all_objects where object_name = 'USER_CONSTRAINTS' возвращает для вас?
Показать ещё 1 комментарий
11

ALL_CONSTRAINTS описывает определения ограничений для таблиц, доступных для текущего пользователя.

DBA_CONSTRAINTS описывает все определения ограничений в базе данных.

USER_CONSTRAINTS описывает определения ограничений в таблицах в текущей пользовательской схеме

Select CONSTRAINT_NAME,CONSTRAINT_TYPE ,TABLE_NAME ,STATUS from 
USER_CONSTRAINTS;
-3
SELECT constraint_name, constraint_type, column_name
from user_constraints natural join user_cons_columns
where table_name = "my_table_name";

предоставит вам то, что вам нужно

  • 0
    этот ответ от известного имени таблицы, чтобы вернуть имя ограничения, вопрос говорит, что имя ограничения известно, нужно получить имя таблицы

Ещё вопросы

Сообщество Overcoder
Наверх
Меню