FROM information_schema.tables WHERE table_type = 'BASE TABLE' AND table_schema NOT IN ('pg_catalog', 'information_schema'); 1. 2. 3. 4. 5. 2 查看用户建立的VIEW SELECT table_name FROM information_schema.views WHERE table_schema NOT IN ('pg_catalog', 'information_schema') AND table_...
有一些特别的schema 是系统内置的,比如public、pg_catalog、information_schema、pg_toast等。其中,PG元数据信息和表都放置在pg_catalog schema中,包括系统表 、索引 、内置数据类型、内置函数等。对于系统表,pg_class,其中储存了表的描述信息;pg_database存储PG中已经创建的数据库的信息;pg_am用于存储表访问方法的...
selecttable_catalog, table_schema, table_name, column_name, ordinal_position, is_nullable, data_type, (selectdescriptionfrompg_description pgdswherepgds.objoid=to_regclass('schema2023'||'.'||'some_info')::REGCLASS::OIDandobjsubid=isc.ordinal_position )asdescriptionfrominformation_schema.columns ...
information_schema和pg_catalog相当于库,所以查询的时候后面一定要加点号指定范围: 以下2种错误写法: select * from information_schema; 错 select * from pg_catalog; 错 因为pg_catalog相当于是数据库,这种语句肯定不对。 1. 2. 3. 4. 查看表注释 SELECT A.attnum, ( SELECT description FROM pg_catalog...
创建数据库时,实例化了3种模式:(pg_catalog对于系统目录表),information_schema(对于信息模式表)和public(对于用户创建的表的默认模式)。每次您CREATE TABLE在数据库中发出命令时,默认情况下Postgres都会将该表分配给public模式。现在,回到以前的问题,如何将用户创建的表与内部表分开?information_schema.tables再次查看各...
在PostgreSQL的数据库逻辑存储架构中,采用的是database-schema-table这样一个三层的架构,和SQLServer一样,SQLServer默认的模式是dbo,PostgresSQL中默认的模式是public。其实大多数应用中,database-table这样两层的架构足够了,三层架构感觉还是复杂了一些。每个database下面有两个默认的系统schema:pg_catalog和information_sche...
AND n.nspname <> 'information_schema' AND pg_catalog.pg_table_is_visible(c.oid) ORDER BY 1,2; 提示:如您所见,PostgreSQL 中的目录包含很多有用的信息。然而,学习如何有效地查询它们需要时间和经验。这就是psql元命令特别有用并且在 PostgreSQL 开发人员中非常流行的原因。
新建的数据库默认会创建不同的模式来管理对象。比如:information_schema、pg_catalog、pg_temp_1、pg_toast、pg_toast_temp_1、public 等。 不同的schema下可以有相同名字的表、函数等对象,互相之间是不冲突的。只要有权限,每个schema的对象是可以互相调用的。
数据字典将关于数据库系统的信息组织到表中,这些表也叫作数据字典表 System Catalog Table,PostgreSQL 将这些数据字典表组织到 Schema 下,由此形成了 PostgreSQL 的数据字典。 数据字典表的 Schema 数据字典表的 Schema 有: pg_catalog information_schema 查询pg_catalog 中的表时,可以省略 schema,即: select ...
LEFT JOIN pg_catalog.pg_namespace n ON n.oid=c.relnamespace LEFT JOIN pg_catalog.pg_am am ON am.oid=c.relam WHERE c.relkindIN('r','p','v','m','S','f','')AND n.nspname<>'pg_catalog'AND n.nspname!~'^pg_toast'AND n.nspname<>'information_schema'AND pg_catalog.pg_tab...