PostgreSQL 12 — Список последовательностей, которые не соответствуют имени связанной таблицы

У меня есть база данных с большим количеством таблиц.

Я хочу привести в порядок отношения, которые больше не подходят по именам из-за изменения имен таблиц.

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


person JBecker    schedule 09.11.2020    source источник


Ответы (1)


Попробуй это:

SELECT a.attrelid::regclass AS table_name,
       a.attname AS column_name,
       pg_get_serial_sequence(a.attrelid::regclass::text, a.attname) AS sequence_name
FROM pg_attribute AS a
   JOIN pg_class AS t ON a.attrelid = t.oid
WHERE t.relkind IN ('r', 'P')
  AND NOT a.attisdropped
  AND pg_get_serial_sequence(a.attrelid::regclass::text, a.attname) IS NOT NULL;
person Laurenz Albe    schedule 09.11.2020
comment
Спасибо за ваш код. Это отлично работает. Я в основном понял это, просто было интересно, что делает ::. Вы можете уточнить? - person JBecker; 10.11.2020
comment
Это слепок. value::type является синонимом стандарта SQL CAST (value AS type). - person Laurenz Albe; 10.11.2020