sql - 通过id查看表

标签 sql postgresql join reference

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

例如我需要在表 D 的行中引用表 ABC 以便我知道哪个表加入。

我假设如果没有速记方式从外部引用表,那么唯一的选择就是存储表的名称。

最佳答案

表格有一个“速记引用”:object identifier - 目录表pg_class的OID。简单获取方法:

SELECT 'schema_name.tbl_name'::regclass

但是,请不要将其保留在您的用户表中。系统表的 OID 在转储/恢复周期中不稳定。

此外,普通 SQL 语句不允许参数化表名称。因此,您必须克服重重困难才能在查询中使用您的想法。要么 dynamic SQL或带有 CASE 语句的多个 LEFT JOIN ...可能会很昂贵。

关于sql - 通过id查看表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26620225/

相关文章:

sql - 如何在 Postgres 中基于 INSERT RETURNING id 进行 SQL 更新?

sql - 获取开始日期和结束日期 - 从给定年份 yyyy 开始

php - SQL插入行如果不存在

arrays - 使用 jsonb_set() 更新特定的 jsonb 数组值

python - pypyodbc:关键字 "WITH"附近的 OPENJSON 语法不正确

c++ - 如何使用 libpqxx 检查列类型?

php - PostgreSQL 选择查询 (GPS)

jquery - MySQL - 连接或插入查询结果

Gorm eager loading 加入多个关系

sql - Nested sql joins process 解释需要