在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城市。
true
false
有一个用于该目录的表: pg_inherits 。
pg_inherits
该目录pg_inherits记录有关表继承层次结构的信息。数据库中的每个直接子表都有一个条目。(可以通过以下条目链来确定间接继承。)
这是一个适合您问题的查询:
SELECT EXISTS ( SELECT 1 FROM pg_catalog.pg_inherits WHERE inhrelid = 'public.cities_capitals'::regclass );
TRUE如果tablecities_capitals从某个地方继承,则else FALSE。 请对名称进行模式限定。
TRUE
cities_capitals
FALSE