我正在创建引用系统目录视图的视图(例如,pg_constraint ),它们将被部署到具有不同版本的postgresql.更高版本的系统目录视图包括以前版本的postgresql中不存在的列。我宁愿我的视图只有一个版本,这样我就可以广泛部署,而不是维护多个版本,这样当我们(不可避免地)升级一些较旧的数据库时,视图定义将不需要更新(谁会记得这样做呢?)
这可能是不可行的,也许我是在抓救命稻草,但我不想在仍有可能有人找到解决方案的情况下轻易放弃。
发布于 2021-01-26 21:22:25
不要在系统目录上创建视图,这将阻止您使用pg_upgrade进行升级。
使用一个函数,该函数可以使用动态SQL组成查询,也可以根据服务器版本执行不同的静态查询。然后,您可以使用该函数定义视图。
https://stackoverflow.com/questions/65901998
复制相似问题