请参阅id表

时间:2014-10-28 23:21:37

标签: sql postgresql join reference

有没有办法通过id引用表。本质上,该表包含属于许多表之一的行。

e.g。我需要在表A的行中引用表BCD,以便我知道要加入哪个表。

我假设如果没有外部引用表的简写方法,那么唯一的选择是存储表的名称。

1 个答案:

答案 0 :(得分:2)

表格有一个“速记参考”:object identifier - 目录表pg_class的OID。获得它的简单方法:

SELECT 'schema_name.tbl_name'::regclass

但是,会在用户表中保留此内容。系统表的OID在转储/恢复周期之间不稳定。

此外,纯SQL语句不允许参数化表名。所以你必须跳过箍来在查询中使用你的想法。 dynamic SQL或多个LEFT JOIN与CASE语句......可能很昂贵。