postgresql - PostgreSQL plpgsql:生成系列不适用于 12 月
问题描述
我正在尝试根据往返月份动态生成一系列表格,但使用我拥有的代码,它不会为 12 月份生成。感谢您的所有帮助。
CREATE OR REPLACE FUNCTION "gracenote"."fn_gn_tv_schedule_tables_test" () RETURNS void
VOLATILE
AS $dbvis$
DECLARE
today_date TEXT;
partitionn TEXT;
partition_check TEXT;
part_table_from DATE;
part_table_to DATE;
part_from DATE;
part_to DATE;
constrnt TEXT;
indx TEXT;
createStmts TEXT;
create_query TEXT;
index_query TEXT;
delete_query TEXT;
BEGIN
today_date := to_char(CURRENT_DATE,'YYYYMM');
partition_check := 'gn_tv_schedule_test' || '_' || today_date;
partitionn := 'gracenote.gn_tv_schedule_test' || '_' || today_date;
part_from := DATE(TO_CHAR( CURRENT_DATE,'YYYY-MM') || '-01');
part_to := DATE(TO_CHAR( CURRENT_DATE + INTERVAL '1 month', 'YYYY-MM' ) || '-01');
part_table_from := DATE (TO_CHAR( CURRENT_DATE + INTERVAL '1 month','YYYY-MM') || '-01');
part_table_to := DATE(TO_CHAR( CURRENT_DATE - INTERVAL '4 month', 'YYYY-MM' ) || '-01');
constrnt := 'gn_tv_schedule_cnstrt_test_' || to_char(CURRENT_DATE, 'YYYYMM');
indx := 'gn_tv_schedule_idx_test_' || to_char(CURRENT_DATE, 'YYYYMM');
FOR create_query, index_query IN SELECT
'CREATE TABLE gracenote.gn_tv_schedule_test_' || TO_CHAR(d, 'YYYYMM') || ' (CONSTRAINT gn_tv_schedule_cnstrt_test_' || TO_CHAR(d, 'YYYYMM') || ' check (( date >= date '''
|| TO_CHAR(d, 'YYYY-MM-01') || ''') and (date < date ''' || TO_CHAR(d + INTERVAL '1 month','YYYY-MM-01') || '''))) INHERITS (gracenote.gn_tv_schedule_panda);',
'CREATE INDEX gn_tv_schedule_idx_test_' || TO_CHAR(d, 'YYYYMM') || ' ON gracenote.gn_tv_schedule_test_' || TO_CHAR(d, 'YYYYMM') || '(date);'
FROM generate_series(part_table_to, part_table_from, '1 month' ) AS d
LOOP
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=partition_check) THEN
EXECUTE create_query;
EXECUTE index_query;
END IF;
END LOOP;
END;
$dbvis$ LANGUAGE plpgsql
输出是从“gn_tv_schedule_test_201807”到“gn_tv_schedule_test_201811”创建的表。'gn_tv_schedule_test_201812' 没有被创建。
解决方案
推荐阅读
- javascript - 计算属性无法正确获取数据 Vue.js ,
- php - Laravel orWhere 查询无法正常工作
- java - 在 java 中创建受密码保护的 zip 文件,在解压过程中我得到文件不支持的问题
- ssh - 如何使用分配给 SIM7600E 4G HAT 的静态 IP 访问 Raspberry PI 4 的 ssh?
- c# - 如何使用 Vue.js 和 .NET Core API 设置 Active Directory 身份验证
- mongodb - $group 聚合中的自定义变量?
- docker - docker-compose up 命令没有响应
- firebase - 使用 rest api 将图像上传到 firebase 存储
- ios - 可访问性检查器将可访问性元素标记为“已忽略”
- node.js - PostgreSQL 上的事务语句构成的函数