Отображение имен всех ограничений для таблицы в Oracle SQL
115
Я определил имя для каждого ограничения для нескольких таблиц, которые я создал в Oracle SQL.
Проблема в том, что для удаления ограничения для столбца конкретной таблицы мне нужно знать имя, которое я указал для каждого ограничения, которое я забыл.
Как мне перечислить все имена ограничений, которые я указал для каждого столбца таблицы?
Вам нужно запросить словарь данных , в частности USER_CONS_COLUMNSпредставление, чтобы увидеть столбцы таблицы и соответствующие ограничения:
SELECT*FROM user_cons_columns
WHERE table_name ='<your table name>';
К вашему сведению, если вы специально не создали свою таблицу с именем в нижнем регистре (с использованием двойных кавычек), тогда имя таблицы будет по умолчанию в верхнем регистре, поэтому убедитесь, что это так в вашем запросе.
Если вы хотите увидеть больше информации о самом ограничении, запросите USER_CONSTRAINTSпредставление:
Я думаю, <имя вашей таблицы> чувствительно к регистру; Это должно быть в верхнем регистре.
Канагавелу Сугумар
ownerПоле в обоих (пользователей | все | дБА) _constraints и (пользователь | все | дБА) _cons_columns является владельцем ограничения, не является владельцем таблицы (в документации Oracle). Владелец таблицы не является доступным полем ни в одном из этих представлений. Означает ли это, что владелец ограничения и владелец таблицы должны быть одним и тем же?
Используйте любую из двух команд ниже. Все должно быть в верхнем регистре. Имя таблицы необходимо заключать в кавычки:
--SEE THE CONSTRAINTS ON A TABLESELECT COLUMN_NAME, CONSTRAINT_NAME FROM USER_CONS_COLUMNS WHERE TABLE_NAME ='TBL_CUSTOMER';--OR FOR LESS DETAILSELECT CONSTRAINT_NAME FROM USER_CONSTRAINTS WHERE TABLE_NAME ='TBL_CUSTOMER';
USER_CONS_COLUMNS
owner
Поле в обоих (пользователей | все | дБА) _constraints и (пользователь | все | дБА) _cons_columns является владельцем ограничения, не является владельцем таблицы (в документации Oracle). Владелец таблицы не является доступным полем ни в одном из этих представлений. Означает ли это, что владелец ограничения и владелец таблицы должны быть одним и тем же?источник
возможно, это может помочь:
ура
источник
Примечание: название таблицы должно быть заглавными.
Если вы не знаете название таблицы, тогда
источник
Часто у корпоративных баз данных есть несколько пользователей, и я не ошибаюсь:
Выбрано из документации Oracle
источник
Используйте любую из двух команд ниже. Все должно быть в верхнем регистре. Имя таблицы необходимо заключать в кавычки:
источник