Привет, Я DocuDroid!
Оценка ИИ поиска
Спасибо за оценку нашего ИИ поиска!
Мы будем признательны, если вы поделитесь своими впечатлениями, чтобы мы могли улучшить наш ИИ поиск для вас и других читателей.
GitHub

pg_depend

Системная таблица pg_depend содержит отношения зависимости между объектами базы данных. Эта информация позволяет командам DROP определять, какие другие объекты должны быть удалены при DROP CASCADE, либо предотвращать удаление в случае DROP RESTRICT. См. также pg_shdepend, которая выполняет схожую функцию для зависимостей, связанных с объектами, общими для всей системы Greengage DB.

Во всех случаях запись pg_depend означает, что вышестоящий объект нельзя удалить без одновременного удаления зависимого объекта. Однако есть несколько подвидов зависимости, определяемых deptype:

  • DEPENDENCY_NORMAL (n) — обычная зависимость между отдельно созданными объектами. Зависимый объект можно удалить, не затрагивая вышестоящий объект. Вышестоящий объект можно удалить только с указанием CASCADE, и тогда зависимый объект тоже будет удален. Пример: столбец таблицы имеет обычную зависимость от своего типа данных.

  • DEPENDENCY_AUTO (a) — зависимый объект можно удалить отдельно от вышестоящего объекта, и он должен автоматически удаляться (вне зависимости от режима RESTRICT или CASCADE), если удаляется вышестоящий объект. Пример: именованное ограничение для таблицы находится в автоматической зависимости от таблицы, так что оно исчезнет при удалении таблицы.

  • DEPENDENCY_INTERNAL (i) — зависимый объект создается при создании вышестоящего объекта и фактически является частью его внутренней реализации. Команда DROP для зависимого объекта будет полностью запрещена (система предложит пользователю вместо этого выполнить DROP для вышестоящего объекта). Команда DROP для вышестоящего объекта приведет к удалению зависимого объекта вне зависимости от того, указан CASCADE или нет.

  • DEPENDENCY_PIN (p) — зависимого объекта нет; запись этого типа означает, что сама система зависит от вышестоящего объекта, и поэтому этот объект нельзя удалять никогда. Записи этого типа создаются только при инициализации системы. Столбцы для зависимого объекта содержат нули.

Столбец Тип Ссылки Описание

classid

oid

pg_class.oid

OID каталога, в котором находится зависимый объект

objid

oid

любой столбец типа OID

OID конкретного зависимого объекта

objsubid

integer

 — 

Для столбца таблицы это номер столбца. Для всех остальных типов объектов этот столбец равен 0

refclassid

oid

pg_class.oid

OID системного каталога, в котором находится вышестоящий объект

refobjid

oid

любой столбец типа OID

OID конкретного объекта, на который есть ссылка

refobjsubid

integer

 — 

Для столбца таблицы это номер столбца, на который есть ссылка. Для всех остальных типов объектов этот столбец равен 0

deptype

char

 — 

Код, определяющий конкретную семантику этой зависимости