Как найти ограничения конкретной таблицы в Dameng

В некоторых конкретных сценариях нам необходимо найти первичный ключ конкретной таблицы или другую информацию об ограничениях. Если мы не знакомы с таблицей, в которой необходимо выполнить поиск, нам нужно использовать системное представление для поиска. В DM8 представления ограничений, которые нам нужно использовать для поиска ограничений определенной таблицы, включают all_constraints и all_cons_columns.

all_constraints содержит всю информацию об ограничениях, принадлежащую текущему пользователю, включая владельца ограничения, имя ограничения, тип ограничения, имя таблицы или имя представления, в котором находится ограничение, но нет информации о конкретном поле, в котором находится ограничение. находится ограничение.

Эту часть информации мы можем найти в системном представлении all_cons_columns. В all_cons_columns включены имя ограничения, имя таблицы, в которой находится ограничение, и имя столбца, в котором расположено ограничение. Мы можем использовать запрос на соединение, чтобы найти имя столбца, в котором находится ограничение первичного ключа конкретной таблицы, которая должна быть быть найден находится. Подключенный столбец — CONSTRAINT_NAME, который является именем ограничения. Имя ограничения можно указать при его создании. Если имя ограничения не указано, будет автоматически создано имя ограничения "CONS" плюс строка чисел. Для разных ограничения, имя ограничения. Имя уникально.

Запрос на соединение между двумя представлениями может получить ограничения для определенных столбцов конкретной таблицы. Всего существует 5 типов ограничений: C представляет собой проверочные ограничения, P представляет ограничения первичного ключа, U представляет ограничения уникальности и R представляет ссылочные ограничения, которые являются внешними ключами.V представляет собой проверочное ограничение представления. Если вам нужно найти ограничение первичного ключа определенной таблицы, вы можете ограничить условие в предложенииwhere значением CONSTRAINT_TYPE='P', чтобы напрямую отфильтровать столбец, в котором находится первичный ключ. Предположим, нам нужно найти столбец первичного ключа таблицы EMPLOYEE в библиотеке примеров DMHR.Метод поиска следующий:

Из результатов запроса мы можем обнаружить, что первичным ключом таблицы EMPLOYEE в DMHR является столбец EMPLOYEE_ID. Информацию об ограничениях других таблиц также можно искать таким же образом. Например, в all_constraints есть информация о ссылочных ограничениях. Мы можем использовать эту информацию, чтобы найти информацию о соответствующем владельце, имени таблицы и имени столбца ссылочного ограничения. Примеры следующие:

С помощью запроса мы можем обнаружить, что ссылочное ограничение столбца DEPARTMENT_ID в таблице EMPLOYEE относится к столбцу DEPARTMENT_ID в таблице DEPARTMENT, а ссылочное ограничение столбца JOB_ID относится к столбцу JOB_ID в таблице JOB. Таким образом, мы можем узнать, на какие столбцы ссылаются все внешние ключи таблицы.

Мы также можем узнать все проверочные ограничения в таблице через представление all_constraints и использовать поле SEARCH_CONDITION, чтобы найти все проверочные ограничения в таблице.

    

Здесь перечислены наиболее распространенные ситуации.В реальных проблемах вам также может потребоваться понять другие аспекты ограничений, например, задерживается ли эффект, соответствуют ли данные правилам ограничений, являются ли ограничения недействительными, и вы хотите Чтобы узнать соответствующие ограничения. Дополнительную информацию о столбцах см. в соответствующих руководствах и документации.

Supongo que te gusta

Origin blog.csdn.net/qq_35273918/article/details/130820264
Recomendado
Clasificación