我想每月使用存储的数据在我的postgresql数据库中自动创建一个表。每次查询运行时,我都希望表名动态更改(例如table_JAN2018,table_FEB2018,table_MAR2018等),以便在旧表保持完整时使用该月的新数据创建新表。
经过研究,我发现我可以实现这个(?),如下面的链接所述:Table name as a PostgreSQL function parameter
所以我以同样的方式尝试了下面的代码:
CREATE FUNCTION table_Jan2018() RETURNS void as
$func$
BEGIN
EXECUTE
'create table' || to_char(current_date, '%b/%Y'|| 'as select * from
(
select
id,product, client, purchase_date, sales_status,
case when complete_transaction_date is null then cast(purchase_date as date)
when verified is not null then cast(complete_transaction_date as date)
end as purchase
from clients
where sales_status in ('state1','state2')
and test=false
)
where purchase>=(current_date - interval '30' day)';
end;
但是,我得到的是presto中的以下错误消息: “在输入'CREATE FUNCTION'中没有可行的选择”
以上功能是否适合我根据需要动态更改表名?还有另一种方法可以达到我的目的吗?
提前谢谢!!