Это третья часть статьи, в которой описаны пользовательские функции для работы с системными каталогами: pg_class, pg_attribute, pg_constraints и т.д.
В этой части статьи обсуждаются функции, которые возвращают характеристики последовательностей, наследуемые таблицы , и особые характеристики атрибутов таблицы .
смотрите также Функции для документирования баз данных PostgreSQL. Первая часть ; Функции для документирования баз данных PostgreSQL. Часть вторая ; Функции для документирования баз данных PostgreSQL. Конец (часть четвертая) .
Первая половина статьи содержит комментарии по реализации функций.
Второй содержит исходные коды функций.
Тем читателям, которых интересуют только исходные тексты, мы предлагаем сразу перейти к Приложение .
Структура функции, возвращающей список характеристик последовательности таблиц
Рис.
2. Функции, от которых зависит функция admtf_Table_Sequences Таблица 11. Назначение функций.
№ | Имя | Цель |
---|---|---|
1 | admtf_Sequence_Features | Функция возвращает список характеристик последовательности таблиц.
|
2 | admtf_Table_Sequences | Функция возвращает список последовательностей таблиц базы данных и их характеристики.
|
Функция admtf_Sequence_Features — список характеристик последовательности базы данных
Функция admtf_Sequence_Features возвращает список функций базы данных SEQUENCE. Исходный код можно посмотреть и скачать здесь .Функция admtf_Sequence_Features возвращает список характеристик последовательности ( ПОСЛЕДОВАТЕЛЬНОСТЬ ) База данных .
Функция принимает имя последовательности ( a_SequenceName ) и имя схемы, внутри которой была создана последовательность ( a_SchemaName ).
Потребность в функции admtf_Sequence_Features возникла из-за того, что основные характеристики последовательности фактически хранятся в таблице, имя которой совпадает с именем последовательности, а данные извлекаются из нее с помощью оператора ВЫБИРАТЬ .
В этом случае имя последовательности, имя схемы и комментарий к последовательности сохраняются в каталогах.
pg_class , pg_namespace И pg_description .
Примечание 6 В версии 10 PostgreSQL разделил характеристики последовательности и характеристики ее состояний.SELECT * FROM kr_road_network_vertices_pgr_id_seq;
Для этого был создан каталог.
pg_sequence с характеристиками последовательности, содержащими начальное значение ( начальное_значение ), приращение ( приращение_по ) и максимальное значение( максимальное_значение ) последовательности.
Последнее значение, возвращаемое последовательностью ( последнее_значение ) и оставил его в «таблице» с названием последовательности.
Конец примечания.
Представление каждой последовательности как аналога таблицы, я думаю, продиктовано необходимостью хранить последнее использованное значение последовательности( последнее_значение ), что является характеристикой состояния последовательности, но не последовательности как таковой.
Запись последовательности каталога pg_class отличается от записи таблицы значением типа отношения (relkind='S').
Чтобы извлечь характеристики произвольной последовательности, вам придется использовать динамический SQL. EXECUTE 'SELECT last_value,start_value,increment_by,max_value FROM '||
LOWER(a_SchemaName)||'.
'||LOWER(a_SequenceName)
INTO v_SequenceLastValue,v_SequenceStartValue,
v_SequenceIncrementBy,v_SequenceMaxValue ;
Теги: #Администрирование базы данных #postgresql #pg_class #pg_attribute #pg_type #pg_constraints #pg_namespace #pg_description #pg_index #pg_index #pg_am #pg_am #pg_am #pg_dependent #pg_dependent #pg_sequence #pg_sequence
-
«Правило Нуля»
19 Oct, 24 -
Сравнительный Анализ Hl7 И Openehr
19 Oct, 24