Цель состоит в том, чтобы получить таблицу и столбец, которые "используют" последовательность, и запрос, который я пришел, заключается в следующем:
select attrelid::regclass::text, attname
from pg_attribute
where pg_get_serial_sequence(attrelid::regclass::text, attname) = 'public.websession_idcntr_seq';
Это неэффективно, поэтому любые другие предложения также приветствуются , но проблема под рукой состоит в том, что это ломается со следующей ошибкой:
ERROR: permission denied for schema pg_toast
Таким образом, следующее, что я сделал, это попытался избежать pg_toast:
select attrelid::regclass::text, attname
from pg_attribute
join pg_class tbl on tbl.oid = pg_attribute.attrelid
join pg_namespace nsp on tbl.relnamespace = nsp.oid
where
nsp.nspname != 'pg_toast'
and pg_get_serial_sequence(attrelid::regclass::text, attname) = 'public.websession_idcntr_seq';
Это также терпит неудачу с точно то же сообщение.
Я не собираюсь ничего делать со схемой pg_toast, и я не могу запустить это под учетной записью суперпользователя. (РЕДАКТИРОВАТЬ: И я не могу изменить разрешения, чтобы обойти это.)
Почему не работает обходной путь с nspname != 'pg_toast'
?
Есть ли лучший способ выполнить всю эту операцию