Наследование (INHERIT) в PostgreSQL отличается от обычного присоединения таблиц тем, что создаёт постоянную связь между новой дочерней таблицей и родительской. 2 Изменения родительской схемы распространяются на дочернюю таблицу, и данные дочерней таблицы включаются в сканирование родительской. 2
С помощью INHERIT можно:
- Объединять столбцы из нескольких родительских таблиц. 23 Если в определениях родительских и дочерней таблиц встретятся столбцы с одним именем, эти столбцы будут «объединены», так что в дочерней таблице окажется только один столбец. 3 Чтобы такое объединение было возможным, столбцы должны иметь одинаковый тип данных, в противном случае произойдёт ошибка. 3
- Наследовать все ограничения CHECK и NOT NULL родительской таблицы. 2 Другие типы ограничений (UNIQUE, PRIMARY KEY и FOREIGN KEY) не наследуются. 2
Таким образом, INHERIT позволяет создавать таблицы без связи первичного и внешнего ключа. 5