Возможно ли создать внешние ключи в главной таблице разбиения с помощью PostgreSQL 9.6?

#postgresql #foreign-keys #database-partitioning #postgresql-9.6

#postgresql #внешние ключи #база данных-секционирование #postgresql-9.6

Вопрос:

Если мы создадим главную таблицу и дочерние элементы с классическим секционированием: проверьте ограничение на дочерних элементах, триггер для вставки данных в главную таблицу для отправки дочерним элементам и т.д.

Возможно ли создать другую таблицу и создать некоторые внешние ключи непосредственно в главной и / или определенном дочернем элементе?

Как управлять, если нет?

Ответ №1:

Я нашел ваш вопрос, потому что понял, что мои объявленные внешние ключи в моей главной таблице не работают.

После некоторого исследования этой темы я думаю, что это невозможно в главной таблице с использованием PostgreSQL 9.6. Поэтому вы должны объявлять внешние ключи в каждом отдельном разделе, чтобы позволить им работать — это должно сработать

Комментарии:

1. да, тот же вывод. Разделение действительно предназначено для конкретной темы, и мы не можем создать связь, потому что нет наследования для индекса, ограничений и т.д. PostgreSQL не выдает ошибку при создании внешних ключей или индекса, но они не будут работать.

2. Точно. Для обеспечения работы всех разделов с let foreign keys или, например, с уникальными индексами, вы должны реализовать триггеры перед вставкой с проверками всех разделов самостоятельно. Возможно, вам следует пометить этот ответ как принятый или написать собственный ответ и пометить его как принятый