我有一个包含 3 个不同分区的表,该表在point_of_sale
列上拆分。我已经构建了一个视图 ( massive_table
) 来聚合来自这些分区的数据,如下所示:
CREATE VIEW massive_table as
SELECT * FROM massive_table_UK
UNION ALL
SELECT * FROM massive_table_US
UNION ALL
SELECT * FROM massive_table_DE;
每个massive_table_UK/US/DE
表都施加了一个检查约束,因此该point_of_sale
列只能包含一个字符串值UK
,US
或者DE
视情况而定。
在对其进行分区之前,我将通过执行以下操作为新数据准备表:
DELETE FROM massive_table WHERE point_of_sale = 'UK';
但是,我更喜欢截断适当的分区。是否可以动态执行此操作?我查看了PostgreSQL PL/pgSQL 文档,它说
参数符号的另一个限制是它们只能在 SELECT、INSERT、UPDATE 和 DELETE 命令中使用。在其他语句类型(通常称为实用程序语句)中,您必须以文本方式插入值,即使它们只是数据值。
我对 PostgreSQL 编程很陌生,我很难理解这句话;我想做的是有一个函数可以根据给定的point_of_sale
值截断适当的分区。那可能吗?