Для дальнейших экспериментов в области наследования нам желательно заполнить наши таблицы данными. Для простоты я взял данные из интернет-магазина компании "Эльдорадо" (http://www.eldorado.ru)
Соответственно, на таблицу dvd
потребуется наложить некоторые ограничения. А именно, поле id
будет у нас ключевым, а все остальные поля не будут обращаться в NULL
.
При этом выясняются некоторые интересные вещи - ограничения в общем случае не наследуются. Обратившись к руководству, можно прояснить ситуацию полностью. А именно:
CHECK
и NOT NULL
наследуются автоматически;В руководстве есть указание, что в будущих версиях возможности наследования будут расширяться. Однако пока что, согласно списку TODO (http://www.postgresql.org/docs/faqs.TODO.html) в реализации наследования есть некоторые спорные моменты, которые планируется исправить:
CASCADE
не указано (хотя в этом случае вообще должна выдаваться ошибка!);ALTER TABLE
существует модификатор ONLY
(который, впрочем, существует и для других операторов, но об этом потом), который должен создавать ненаследуемые ограничения. Однако они все равно наследуются. Мнение разработчиков таково, что такую возможность следует убрать и делать ВСЕ ограничения наследуемыми.