当前位置: 首页 > 面试题库 >

检查表是否从PostgreSQL中的其他表继承

花博厚
2023-03-14
问题内容

在PostgreSQL中用于这些表

CREATE TABLE cities (
    name            text,
    population      float,
    altitude        int     -- in feet
);

CREATE TABLE cities_capitals (
    state           char(2)
) INHERITS (cities);

如何以 编程方式检查 这些 表中的 一个是否 继承自另一个表
?(请考虑information_schema,pg_catalog等)

应该true适用于city_capitals和false城市。


问题答案:

有一个用于该目录的表:
pg_inherits

该目录pg_inherits记录有关表继承层次结构的信息。数据库中的每个直接子表都有一个条目。(可以通过以下条目链来确定间接继承。)

这是一个适合您问题的查询:

SELECT EXISTS (
   SELECT 1
   FROM   pg_catalog.pg_inherits
   WHERE  inhrelid = 'public.cities_capitals'::regclass
   );

TRUE如果tablecities_capitals从某个地方继承,则else FALSE
请对名称进行模式限定。



 类似资料:
  • 我对连接没有太多经验,下面的查询结果不正确。我有一个名为products的表,希望检查表product\u links中是否有记录。我只想获取product\u链接中没有行的项目列表。 当我运行下面的查询时,我只得到一行。有什么建议吗?谷歌帮不了我,或者我用错误的关键词搜索。

  • 我有两个问题: 从表1中选择*,其中my\u值介于值1和值2之间 从表2中选择值1、值2 表2中的value1和value2的集合是唯一的。如何在第一个查询的where语句中插入查询2的所有结果集?

  • 问题内容: 我有一个嵌入了数据库的桌面应用程序。当我执行程序时,我需要检查特定的表是否存在,如果不存在则创建它。 给我的数据库一个名为conn的Connection对象,我该如何检查呢? 问题答案: 您可以使用可用的元数据: 有关更多详细信息,请参见此处。还要注意JavaDoc中的注意事项。

  • 问题内容: 我有两个表,例如: 表A是我的源表,表B是目标表。现在,我需要一个查询,该查询可以在表A中找到所有不同的(附加)行,因此可以使用这些行来更新表B。因此,我需要一个查询,该查询从表A中找到以下行: 这样的查询有什么好的方法?它应该尽可能高效(避免过多的联接)。谢谢你的帮助! 问题答案: 我将使用NOT EXISTS结构。

  • 如果表已经存在,如何检查TarantoolSQL?

  • 我需要验证表中是否已经存在列。我的类扩展了CustomTaskChange,因此我的方法接收一个数据库对象作为参数。我可以通过ResultSetObject进行我想要的验证吗?