повысить до наследственной таблицы в postgresql - PullRequest
1 голос
/ 22 февраля 2012

Предположим, у меня есть таблица Bars, наследующая таблицу Foos.

Как я могу повысить foo до bar?

Понижение bar до foo будет простым, просто удалив строку из Bars.

1 Ответ

3 голосов
/ 22 февраля 2012

Документ о Наследование сообщает вам:

Наследование не распространяет данные из команд INSERT или COPY автоматически в другие таблицы в иерархии наследования.

Это означает, что вам нужно удалить строку из родительской таблицы и вставить новую в дочернюю таблицу.

Вы говорите:

Понижение бара до foo будет простым, просто удалив строку из Bars.

Это заставляет меня думать, вы неправильно понимаете, как наследование работает в PostgreSQL. В основном у вас есть две таблицы, таблица Bar имеет те же столбцы, что и Foo плюс любые дополнительные столбцы. При вставке Bar данные записываются только в Bar, никакие «общие данные» не будут записываться в Foo. Когда вы удаляете строку из Bar, ваши данные не будут «понижены», они полностью исчезнут. Таким образом, для продвижения и понижения необходимо перетасовывать данные между таблицами.

Вы можете прочитать длинную историю в прекрасном руководстве, которое я связал: -)

...