Отображение имен всех ограничений для таблицы в Oracle SQL
Я определил имя для каждого ограничения для нескольких таблиц, которые я создал в Oracle SQL.
проблема в том, что для удаления ограничения для столбца конкретной таблицы мне нужно знать имя, которое я предоставил для каждого ограничения, которое я забыл.
Как мне перечислить все имена ограничений, которые я указал для каждого столбца таблицы?
есть ли инструкция SQL для этого?
5 ответов:
вам нужно запросить словарь данных, в частности
USER_CONS_COLUMNS
просмотр столбцов таблицы и соответствующих ограничений:SELECT * FROM user_cons_columns WHERE table_name = '<your table name>';
FYI, если вы специально не создали свою таблицу с именем нижнего регистра (используя двойные кавычки), то имя таблицы будет по умолчанию указано в верхнем регистре, поэтому убедитесь, что это так в вашем запросе.
если вы хотите увидеть дополнительную информацию о самом ограничении, запросите
USER_CONSTRAINTS
вид:SELECT * FROM user_constraints WHERE table_name = '<your table name>' AND constraint_name = '<your constraint name>';
если таблица хранится в схеме, которая не является схемой по умолчанию, то вам может потребоваться заменить представления на:
all_cons_columns
и
all_constraints
добавление в предложение where:
AND owner = '<schema owner of the table>'
может быть, это может помочь:
SELECT constraint_name, constraint_type, column_name from user_constraints natural join user_cons_columns where table_name = "my_table_name";
ура
select constraint_name,constraint_type from user_constraints where table_name = 'YOUR TABLE NAME';
Примечание: имя таблицы должно быть в шапках.
в случае, если вы не знаете имя таблицы, затем
select constraint_name,constraint_type,table_name from user_constraints;
используйте любую из двух команд ниже. Все должно быть в верхнем регистре. Имя таблицы должно быть заключено в кавычки:
--SEE THE CONSTRAINTS ON A TABLE SELECT COLUMN_NAME, CONSTRAINT_NAME FROM USER_CONS_COLUMNS WHERE TABLE_NAME = 'TBL_CUSTOMER'; --OR FOR LESS DETAIL SELECT CONSTRAINT_NAME FROM USER_CONSTRAINTS WHERE TABLE_NAME = 'TBL_CUSTOMER';