#postgresql #foreign-keys #database-partitioning #postgresql-9.6
#postgresql #внешние ключи #база данных-секционирование #postgresql-9.6
Вопрос:
Если мы создадим главную таблицу и дочерние элементы с классическим секционированием: проверьте ограничение на дочерних элементах, триггер для вставки данных в главную таблицу для отправки дочерним элементам и т.д.
Возможно ли создать другую таблицу и создать некоторые внешние ключи непосредственно в главной и / или определенном дочернем элементе?
Как управлять, если нет?
Ответ №1:
Я нашел ваш вопрос, потому что понял, что мои объявленные внешние ключи в моей главной таблице не работают.
После некоторого исследования этой темы я думаю, что это невозможно в главной таблице с использованием PostgreSQL 9.6. Поэтому вы должны объявлять внешние ключи в каждом отдельном разделе, чтобы позволить им работать — это должно сработать
Комментарии:
1. да, тот же вывод. Разделение действительно предназначено для конкретной темы, и мы не можем создать связь, потому что нет наследования для индекса, ограничений и т.д. PostgreSQL не выдает ошибку при создании внешних ключей или индекса, но они не будут работать.
2. Точно. Для обеспечения работы всех разделов с let foreign keys или, например, с уникальными индексами, вы должны реализовать триггеры перед вставкой с проверками всех разделов самостоятельно. Возможно, вам следует пометить этот ответ как принятый или написать собственный ответ и пометить его как принятый