@mark35 , @kenyon_君羊 : PG 的动态虚拟View

宏哥 发布于 2013/08/19 11:28
阅读 151
收藏 0

如果我希望传入一个参数, 让一个函数/View 产生一个动态的 Table 视图应该如何做?

我尝试过在Function 里面对不同的表产生视图出来, 但是有个限制, 就是返回的字段列表是固定的。

如果希望返回的字段列表也是动态的, 有无可能? 在oracle里面是通过dynamic SQL来实现的。  

以下是问题补充:

@宏哥:@mark35 , @kenyon_君羊 (2013/08/19 11:29)
加载中
0
宏哥
宏哥
@mark35@kenyon_君羊 
0
mark35
mark35
动态返回字段我没研究出来
0
kenyon_君羊
kenyon_君羊
年纪大了,不是很明白你的需求,能否给个例子?postgresql的视图有一定的局限性,表字段的增减会对视图造成影响,有时甚至需要重建视图。
mark35
mark35
是的,如果是追加字段基本没问题,如果新增加的字段是中间插入的(相对于原来的DDL),那么就必须先删除然后重建视图
0
宏哥
宏哥

引用来自“kenyon_君羊”的答案

年纪大了,不是很明白你的需求,能否给个例子?postgresql的视图有一定的局限性,表字段的增减会对视图造成影响,有时甚至需要重建视图。

回复 @mark35 : 目前这个问题, 我没有找到解决方法. 

我的需求是 元数据, 实际对应到一个 元数据父表的所有字表, 字表的结构是不一样的.

用一个字典来管理, 需要根据字典里面的信息, 动态查询字表的信息. 这意味着, 对应不同的元数据, 会返回不同的字段. 

目前我的做法, 是在程序里面拼装sql来做的. 当然, 每次查询, 并不跨子表, 如果跨子表, 只会查询共有字段.

0
中山野鬼
中山野鬼

引用来自“宏哥”的答案

引用来自“kenyon_君羊”的答案

年纪大了,不是很明白你的需求,能否给个例子?postgresql的视图有一定的局限性,表字段的增减会对视图造成影响,有时甚至需要重建视图。

回复 @mark35 : 目前这个问题, 我没有找到解决方法. 

我的需求是 元数据, 实际对应到一个 元数据父表的所有字表, 字表的结构是不一样的.

用一个字典来管理, 需要根据字典里面的信息, 动态查询字表的信息. 这意味着, 对应不同的元数据, 会返回不同的字段. 

目前我的做法, 是在程序里面拼装sql来做的. 当然, 每次查询, 并不跨子表, 如果跨子表, 只会查询共有字段.

貌似先有元数据的组织信息,才有数据库的实际构建。。。你何必反过来做。做个中间件,数据库的表项调整等都是中间件 读取“组织信息”驱动数据库构建,而不是手工实现。哈。
0
宏哥
宏哥

引用来自“中山野鬼”的答案

引用来自“宏哥”的答案

引用来自“kenyon_君羊”的答案

年纪大了,不是很明白你的需求,能否给个例子?postgresql的视图有一定的局限性,表字段的增减会对视图造成影响,有时甚至需要重建视图。

回复 @mark35 : 目前这个问题, 我没有找到解决方法. 

我的需求是 元数据, 实际对应到一个 元数据父表的所有字表, 字表的结构是不一样的.

用一个字典来管理, 需要根据字典里面的信息, 动态查询字表的信息. 这意味着, 对应不同的元数据, 会返回不同的字段. 

目前我的做法, 是在程序里面拼装sql来做的. 当然, 每次查询, 并不跨子表, 如果跨子表, 只会查询共有字段.

貌似先有元数据的组织信息,才有数据库的实际构建。。。你何必反过来做。做个中间件,数据库的表项调整等都是中间件 读取“组织信息”驱动数据库构建,而不是手工实现。哈。

"数据字典" 就是 组织信息

SQL的拼接是通过数据字典的数据来组织的, 一个逻辑: N种类型查询.

0
池塘仙人
池塘仙人
用json类型输出?再包装一下,应该差不多可以用用
返回顶部
顶部