我想在具有 UUID 值的列上使用 PostgreSQL 的声明性表分区。我希望它按 SELECT 返回的值进行分区。
CREATE TABLE foo (
id uuid NOT NULL,
type_id uuid NOT NULL,
-- other columns
PRIMARY KEY (id, type_id)
) PARTITION BY LIST (type_id);
CREATE TABLE foo_1 PARTITION OF foo
FOR VALUES IN (SELECT id FROM type_ids WHERE type_name = 'type1');
CREATE TABLE foo_2 PARTITION OF foo
FOR VALUES IN (SELECT id FROM type_ids WHERE type_name = 'type2');
我不想在 中使用特定FOR VALUES IN ('uuid')
的 UUID,因为 UUID 可能因环境(dev、qa、prod)而异。但是,SELECT
Postgres 似乎不接受该语法。有什么建议么?