PG数据库判断包含年度月份的表是否存在、字段是否存在,不存在则创建
程序员文章站
2022-06-03 09:44:51
...
说明
维护功能中需要升级表结构,增加字段。但是表比较特殊,是按月划分,所以需要动态拼接出表名
存储过程
DO $$
DECLARE
audittable varchar(20);
sqlstring varchar(100);
BEGIN
SELECT into audittable ('gspaudit' || substring(to_char(now(), 'YYYYMMDD') from 3 for 4));
sqlstring = 'alter table ' || audittable || ' add column seclevel VARCHAR(256)';
IF EXISTS(select 1 FROM pg_tables WHERE tablename = audittable)
THEN
IF NOT EXISTS(SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = audittable AND COLUMN_NAME = 'seclevel' )
THEN
EXECUTE (sqlstring);
END IF;
END IF;
END $$;
注意事项
1、IF EXISTS写法是PG10之后支持的写法
上一篇: DM上配置ODBC接口
下一篇: 判断对象是否存在