postgresql - 将 View 名称作为参数传递给函数

标签 postgresql plpgsql dynamic-sql

我可以将 View 的名称作为函数的参数传递吗?示例:

CREATE OR REPLACE FUNCTION example_test(test type_view) return void as $$
BEGIN
    start_ts = CLOCK_TIMESTAMP();
    REFRESH MATERIALIZED VIEW test;
    GET DIAGNOSTICS total_rows = ROW_COUNT;
    INSERT INTO control_dw_monitoring (name, start_time, end_time, total)
    VALUES ('view points that never contacted', start_ts, CLOCK_TIMESTAMP(), total_rows);
END
$$ language plpgsql;

最佳答案

尝试以下操作:

CREATE FUNCTION refresh_view_by_name(view_name text) RETURNS VOID AS $$
BEGIN
    EXECUTE 'REFRESH MATERIALIZED VIEW ' || view_name::regclass;
END
$$ LANGUAGE PLPGSQL;

关于postgresql - 将 View 名称作为参数传递给函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28409769/

相关文章:

django - 如何使用现有数据库设置 PostGIS?

postgresql - 在 PostgreSQL GIN 索引中使用 JSON 对象值

sql - plpgsql 语法错误

postgresql - 在PostgreSQL中使用查询设置列类型

sql - 在插入查询中动态选择列名

sql - 为什么带有 DELETE 的 PostgreSQL CTE 不起作用?

postgresql - 检查物化 View 是否被填充

django.db.utils.ProgrammingError : relation "bot_trade" does not exist

postgresql - 动态 SQL 循环时处理结果

postgresql - 在 COMMENT ON TABLE 中放置时间戳