Зв'язок між автоматично сформованими послідовностями (такими, які створені для стовпців СЕРІАН) та батьківською таблицею моделюється атрибутом власника послідовностей.
Ви можете змінити це відношення за допомогою пункту OWNED BY в команді ALTER SEQUENCE
напр., ПІСЛЯ СЕКЦІОННОСТІ foo_id ВЛАСНИЙ foo_schema.foo_table
щоб встановити, щоб він був пов'язаний з таблицею foo_table
або АЛЕ ПОСЛІДНОСТІ foo_id ВЛАСНІЙ НІКОЛИ
щоб перервати зв’язок між послідовністю та будь-якою таблицею
Інформація про цей взаємозв'язок зберігається в таблиці каталогу pg_depend .
відносини приєднання - це зв'язок між pg_depend.objid -> pg_class.oid WHERE relkind = 'S' - який пов'язує послідовність із записом приєднання, а потім pg_depend.refobjid -> pg_class.oid WHERE relkind = 'r', який посилається на приєднати запис до відношення володіння (таблиця)
Цей запит повертає всі залежності послідовності -> таблиці в базі даних. Пункт де фільтрує його, включаючи лише автоматичні згенеровані відносини, що обмежує його лише відображенням послідовностей, створених стовпцями типу SERIAL.
WITH fq_objects AS (SELECT c.oid,n.nspname || '.' ||c.relname AS fqname ,
c.relkind, c.relname AS relation
FROM pg_class c JOIN pg_namespace n ON n.oid = c.relnamespace ),
sequences AS (SELECT oid,fqname FROM fq_objects WHERE relkind = 'S'),
tables AS (SELECT oid, fqname FROM fq_objects WHERE relkind = 'r' )
SELECT
s.fqname AS sequence,
'->' as depends,
t.fqname AS table
FROM
pg_depend d JOIN sequences s ON s.oid = d.objid
JOIN tables t ON t.oid = d.refobjid
WHERE
d.deptype = 'a' ;