Re: On partitioning, PKs and FKs

Поиск
Список
Период
Сортировка
От Ron
Тема Re: On partitioning, PKs and FKs
Дата
Msg-id 9cb3fdc8-8732-8db6-5342-bbde540872ea@gmail.com
обсуждение исходный текст
Ответ на On partitioning, PKs and FKs  (Wiwwo Staff <wiwwo@wiwwo.com>)
Список pgsql-general
On 7/8/21 3:42 AM, Wiwwo Staff wrote:
Hi!
I have a big table bigTable which I partitioned by hash on field columnX, by creating bigTable_0, bigTable_1 etc.
Since I need a PK on bigTable.id, and table is not partitioned by id, and columnX is not unique, i added PK on bigTable_0.id, bigTable_1.id etc. So far, so good.

Now I have anotherTable, which has column bigTable_id referencing bigTable.id.
Creating FK anotherTable__bigTable_FK on anotherTable.bigTable_id -you guess :D- fails with
[42830] ERROR: there is no unique constraint matching given keys for referenced table "bigTable"
Also creating a FK pointing to one of the hash tables bigTable_0.id, bigTable_1.id etc. also fails with
ERROR:  23503: insert or update on table "anotherTable" violates foreign key constraint "anotherTable__bigTable_FK".

Do I have a way out? :)

https://www.postgresql.org/docs/12/ddl-partitioning.html#DDL-PARTITIONING-DECLARATIVE

Section "5.11.2.3. Limitations" says, "Unique constraints (and hence primary keys) on partitioned tables must include all the partition key columns."

Thus, the bigTable PK must be on id, columnX,  (No, I don't like it either.)

--
Angular momentum makes the world go 'round.

В списке pgsql-general по дате отправления:

Предыдущее
От: Atul Kumar
Дата:
Сообщение: optimization issue
Следующее
От: Michael Lewis
Дата:
Сообщение: Re: On partitioning, PKs and FKs