PostgreSQL psql中如何查看快捷功能的对应函数

在psql中,我们可以通过一系列的的快捷命令查看数据库元素,如:\d 查看当前搜索路径下的表,那么内部用到的SQL语句是什么呢,可以通过命令来设置是否打印出来:

apple=# \set ECHO_HIDDEN on
apple=# \c mydb
You are now connected to database "mydb" as user "apple".
mydb=# \d
********* QUERY **********
SELECT n.nspname as "Schema",
  c.relname as "Name",
  CASE c.relkind WHEN 'r' THEN 'table' WHEN 'v' THEN 'view' WHEN 'm' THEN 'materialized view' WHEN 'i' THEN 'index' WHEN 'S' THEN 'sequence' WHEN 's' THEN 'special' WHEN 'f' THEN 'foreign table' END as "Type",
  pg_catalog.pg_get_userbyid(c.relowner) as "Owner"
FROM pg_catalog.pg_class c
     LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
WHERE c.relkind IN ('r','v','m','S','f','')
      AND n.nspname <> 'pg_catalog'
      AND n.nspname <> 'information_schema'
      AND n.nspname !~ '^pg_toast'
  AND pg_catalog.pg_table_is_visible(c.oid)
ORDER BY 1,2;
**************************

                  List of relations
 Schema |      Name       |     Type      |  Owner
--------+-----------------+---------------+----------
 public | employees       | table         | postgres
 public | indent          | table         | apple
 public | indent_id_seq   | sequence      | apple
 public | student         | table         | postgres
 public | table_new       | table         | postgres
 public | test1           | table         | apple
 public | test_cur        | table         | postgres
 public | test_from_apple | foreign table | apple
 public | test_id_seq     | sequence      | apple
 public | test_time       | table         | apple
 public | test_type       | table         | apple
(11 rows)

mydb=# \set ECHO_HIDDEN off
mydb=# \d
                  List of relations
 Schema |      Name       |     Type      |  Owner
--------+-----------------+---------------+----------
 public | employees       | table         | postgres
 public | indent          | table         | apple
 public | indent_id_seq   | sequence      | apple
 public | student         | table         | postgres
 public | table_new       | table         | postgres
 public | test1           | table         | apple
 public | test_cur        | table         | postgres
 public | test_from_apple | foreign table | apple
 public | test_id_seq     | sequence      | apple
 public | test_time       | table         | apple
 public | test_type       | table         | apple
(11 rows)

 

猜你喜欢

转载自www.cnblogs.com/kuang17/p/10136379.html