PostgreSQL中,database,schema,table之间关系

从逻辑上看,schema,table,都是位于database之下。

首先,在postgres数据库下建立表(相当于建立在public schema下):

[pgsql@localhost bin]$ ./psql -d postgres
psql (9.1.2)
Type "help" for help.

postgres=# create table tab200(id integer);
CREATE TABLE
postgres=# q

然后,再在tester数据库下建立表(相当于建立在public schema下):

[pgsql@localhost bin]$ ./psql -d tester
psql (9.1.2)
Type "help" for help.

tester=# create table tab200(id integer);
CREATE TABLE
tester=# q

然后,再在其他的数据库下进行查看:

[pgsql@localhost bin]$ ./psql
psql (9.1.2)
Type "help" for help.

pgsql=# SELECT * FROM information_schema.tables WHERE table_name='tab200';
 table_catalog | table_schema | table_name | table_type | self_referencing_column_name | reference_generation | user_de
fined_type_catalog | user_defined_type_schema | user_defined_type_name | is_insertable_into | is_typed | commit_action 
---------------+--------------+------------+------------+------------------------------+----------------------+--------
-------------------+--------------------------+------------------------+--------------------+----------+---------------
(0 rows)

pgsql=# q

然后,再在 postgres数据库和tester数据库下分别查看:

[pgsql@localhost bin]$ ./psql -d tester
psql (9.1.2)
Type "help" for help.

tester=# SELECT * FROM information_schema.tables WHERE table_name='tab200';
 table_catalog | table_schema | table_name | table_type | self_referencing_column_name | reference_generation | user_de
fined_type_catalog | user_defined_type_schema | user_defined_type_name | is_insertable_into | is_typed | commit_action 
---------------+--------------+------------+------------+------------------------------+----------------------+--------
-------------------+--------------------------+------------------------+--------------------+----------+---------------
 tester        | public       | tab200     | BASE TABLE |                              |                      |        
                   |                          |                        | YES                | NO       | 
(1 row)

tester=# q
[pgsql@localhost bin]$ ./psql -d postgres psql (9.1.2) Type "help" for help. postgres=# SELECT * FROM information_schema.tables WHERE table_name='tab200'; table_catalog | table_schema | table_name | table_type | self_referencing_column_name | reference_generation | user_de fined_type_catalog | user_defined_type_schema | user_defined_type_name | is_insertable_into | is_typed | commit_action ---------------+--------------+------------+------------+------------------------------+----------------------+-------- -------------------+--------------------------+------------------------+--------------------+----------+--------------- postgres | public | tab200 | BASE TABLE | | | | | | YES | NO | (1 row)
原文地址:https://www.cnblogs.com/gaojian/p/3171301.html