#postgresql #naming #names
Вопрос:
Какие типы объектов базы данных в PostgreSQL образуют свой собственный независимый домен имен, чтобы исключить конфликты имен с объектами другого рода?
Вид объектов базы данных означает таблицы, схемы, представления, триггеры, процедуры, функции, операторы, переменные,…
Вопрос не следует путать с пространством имен (через схемы).
Комментарии:
1. Дизайн системных каталогов должен отвечать этому — например, все отношения (таблицы, представления и т. Д.) Хранятся в одной таблице. Что более интересно, так это то, какие «домены имен» относятся к другим объектам, например, имена ограничений для каждой таблицы, а какие нет, например индексы.
2. Спасибо, но этот список мне больше не помогает: формируют ли пользовательские типы и домены общую область имен? являются ли они независимыми от функций, чтобы я мог назвать функцию и тип одинаково?
3.
CREATE TYPE
,CREATE DOMAIN
иCREATE TABLE
все создаютpg_type
запись . Да, они независимы от функций.4. Хорошо, тогда я попытаюсь подвести итог: — тип, домен, таблица — триггер — функция (в круглых скобках) — процедура (я предполагаю, что она отличается «вызовом») — схемы
5. Как процедуры, так и функции хранятся в
pg_proc
. Если вы просматриваете эти таблицы, посмотрите на…typ
…kind
столбцы или (напримерprokind
,typtype
,relkind
), чтобы найти, что еще относится к этой категории.